VagrantでなんちゃってIaC体験【実践記録3】

実践記録3

実践記録2でVirtualBoxとVagrantを使って仮想マシンを作成してみましたが、
空っぽな仮想マシンで少し味気なかったのでVagrantfileを編集してもう少し遊んでみようと思います。

さほど複雑なことはまだできませんが、
Infrastructure as Code、通称IaCの入門としてやってみます!

前提

VirtualBoxとVagrantがインストールされていること。
インストール方法は以下の記事を参考

関連記事

実践記録1VirtualBoxをインストールしてローカル開発環境を構築してみたいと思います。AWSなどのクラウドサービスを使った方が最近は簡単に環境を準備できますが、まずは自分のPCに仮想環境を構築してみようと思います。[…]

関連記事

実践記録2実践記録1でVirtualBoxを使ってローカル開発環境を構築してみましたが、今回はVagrantという仮想環境構築ツールを使ってVirtualBox上に仮想マシンを構築してみようと思います。前提使用する環境にVi[…]

Vagrantfileをいじってみる

まずはワークスペースを作成して、初期化を行います。

vagrant init
これでVagrantfileが作成されました。
現時点の定義内容は以下だけです。
これを以下の様に変更してみます。

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:プロビジョニングを定義しておくと仮想マシンが立ち上がった後に処理を行うことができます。

今回はプロビジョニングでnginxをインストールして「hello world!!」と表示されるようにしました。
では、vagrant up コマンドで仮想マシンを作成します。
vagrant up
作成後、いくつか確認してみます。
curlコマンドでアクセスしてみると、Vagrantfileに記載しておいた「hello world!!」が表示されていますね。
順番前後かもですが、仮想マシンにvagrant sshでアクセスしてホスト名とIPについても想定通りの結果が得られています。
またホスト側のワークスペースと仮想マシン側の「/vagrant_data」のフォルダも同期されていました。
ちゃんとできてる!
感動ですね、超単純なプライベートネットワーク内のWebサーバですがIaC的に構築できていることには違いありません!
一歩前進です。

つまずいた点

ファイル同期の設定時にvboxsfが認識できないとかでエラーになりました。
エラー内容を確認する限り、「Guest Additional」が無い事が原因のようです。

調べたところ「vagrant-vbguest」というプラグインを導入すれば「Guest Additional」を自動でインストールしてくれるようです。
参考:一年ぶりにvagrantを使おうとしたら出たエラーとその解決方法
早速導入しました。
その後改めてvagrant up で仮想マシンを作成したところ無事にファイル共有を行うことができました。
今回はここまでにします。
続きは以下の記事です!
関連記事

実践記録4実践記録3でVagrantを用いて作成した環境ですが、重大な欠陥を見つけてしまいました。それは、「Could not resolve host」エラーが発生してDNSの名前解決ができないこと。これを解消しなければ、[…]