実践記録3
実践記録2でVirtualBoxとVagrantを使って仮想マシンを作成してみましたが、
空っぽな仮想マシンで少し味気なかったのでVagrantfileを編集してもう少し遊んでみようと思います。
さほど複雑なことはまだできませんが、
Infrastructure as Code、通称IaCの入門としてやってみます!
前提
VirtualBoxとVagrantがインストールされていること。
インストール方法は以下の記事を参考
実践記録1VirtualBoxをインストールしてローカル開発環境を構築してみたいと思います。AWSなどのクラウドサービスを使った方が最近は簡単に環境を準備できますが、まずは自分のPCに仮想環境を構築してみようと思います。[…]
実践記録2実践記録1でVirtualBoxを使ってローカル開発環境を構築してみましたが、今回はVagrantという仮想環境構築ツールを使ってVirtualBox上に仮想マシンを構築してみようと思います。前提使用する環境にVi[…]
Vagrantfileをいじってみる
まずはワークスペースを作成して、初期化を行います。
現時点の定義内容は以下だけです。
1 2 3 | Vagrant.configure("2") do |config| config.vm.box = "base" end |
1 2 3 4 5 6 7 8 9 10 11 12 | Vagrant.configure("2") do |config| config.vm.box = "centos/7" config.vm.hostname = "demo" config.vm.network "private_network", ip: "192.168.33.10" config.vm.synced_folder "./", "/vagrant_data",type:" virtualbox"config.vm.provision "shell", inline: <<-SHELL yum -y install epel-release yum -y install nginx echo "hello world!!" > /usr/share/nginx/html/index.html systemctl start nginx SHELL end |
Vagrant.configure(“2”):Vagrantfileのバージョン2を表しているらしいです。そういうものだと思っておきましょう。
config.vm.box:使用するBox
config.vm.hostname:作成する仮想マシンのホスト名
config.vm.network:IPアドレス(private_networkを指定した場合ホストマシンからのみ接続可能)
config.vm.synced_folder:仮想マシン上のフォルダとホストマシンのファイル同期
config.vm.provision:プロビジョニングを定義しておくと仮想マシンが立ち上がった後に処理を行うことができます。
curlコマンドでアクセスしてみると、Vagrantfileに記載しておいた「hello world!!」が表示されていますね。
感動ですね、超単純なプライベートネットワーク内のWebサーバですがIaC的に構築できていることには違いありません!
つまずいた点
ファイル同期の設定時にvboxsfが認識できないとかでエラーになりました。
エラー内容を確認する限り、「Guest Additional」が無い事が原因のようです。
参考:一年ぶりにvagrantを使おうとしたら出たエラーとその解決方法
実践記録4実践記録3でVagrantを用いて作成した環境ですが、重大な欠陥を見つけてしまいました。それは、「Could not resolve host」エラーが発生してDNSの名前解決ができないこと。これを解消しなければ、[…]
コメントを書く