ついんてっく

双子のエンジニア(兄:web、弟:インフラ)が気になること、今やってるプロジェクトとかについて書きます。ぶっちゃけ1人でやって続かなかったから監視体制を置いたのが強いサボりん坊や

chefを使ってサーバ管理②〜仮想マシン(VirtualBox、Vagrant)の作成〜

どうも、弟です。

前回は手元の端末にchefをインストールしました。

twins-tech.hatenablog.com

今回は、chefの設定を適用するための仮想サーバを構築します。

仮想サーバのインストール

仮想サーバはVirtualBox、仮想化ツールはVagrantで構築していきます。

VirtualBoxVagrantは公式サイトからダウンロードできます。

VirtualBox
https://www.virtualbox.org/wiki/Downloads

Vagrant
https://www.vagrantup.com/downloads.html

Vagrant テンプレートボックスの追加

VirtualBoxVagrantをダウンロード後、Vagrantのテンプレートボックス(以降、box)を追加します。
boxとは、Vagrantでの仮想サーバの情報のことで、このboxを起動させることでVirtualBox仮想サーバが動きます。

boxの追加は以下のコマンドで実施できます。

vagrant box add "追加するboxのURL"

boxのURLは以下のサイトから入手することが可能です。

Atlas
https://atlas.hashicorp.com/boxes/search

Vagrantbox.es
http://www.vagrantbox.es/

Vagrantのboxをaddしたら、Vagrantのboxが手元の端末に追加されていることを確認しましょう。
vagrant box list

ちなみに、追加されたboxは" ~/.vagrant.d/box"に追加されます。

Vagrant boxの起動

boxを手元の端末に追加しただけでは、まだVirtualboxから認識できません。
boxを起動させる必要があるのですが、そのためにはVagrantfileと呼ばれる設定ファイルが必要となります。
Vagrantfileを作成するには以下のコマンドを実行します。

vagrant init <vagrant box名>

vagrant box名はvagrant box listで表示されたbox名のどれかです。
コマンドを実行したディレクトリ配下にvagrantfileが作成されます。

設定ファイルを作っただけでは、まだVirtualBoxとしては仮想マシンとして起動していません。
当然、VirtualBoxのコンソールも以下の状態となっています。 f:id:twins_tech:20160717134604p:plain

vagrantfileが存在するディレクトリにて、以下のコマンドを実行し、仮想マシンを立ち上げます。

vagrant up

仮想マシンが立ち上がったことで、VirtualBoxのコンソールも以下の通りとなります。

f:id:twins_tech:20160717135038p:plain

仮想マシンにログインする

作成した仮想マシンにログインするには、以下のコマンドを実行します。

vagrant ssh

これだけで仮想マシンにログインし、操作可能です。

仮想マシンを操作する(状態確認・停止等)

仮想マシンの状態を確認するには以下のコマンドを実行します。

vagrant status

f:id:twins_tech:20160717140108p:plain

running(virtual box)となっており、VirtualBox上で起動しているのがわかります。

仮想マシンを停止するには、以下のコマンドを実行します。

vagrant halt

VirtualBoxのコンソールも、以下のように変化します。

f:id:twins_tech:20160717140336p:plain

また、この状態でvagrant statusを実行した場合、以下の結果となります。

f:id:twins_tech:20160717140603p:plain

poweroff(virtual box)となっており、VirtualBox上で停止しているのがわかります。
再度起動したい場合は、vagrant upをすれば起動できます。
また、再起動を行いたい場合は、vagrant reloadで再起動できます。

今回で手元の端末にchef、設定を適用するサーバとして仮想サーバと環境を構築できました。
次回以降で、chefと仮想サーバを連動させていこうと思います。
それでは