Chef実践入門を実践してみる その6

Apache,MySQLのインストール

だんだん仕組みが分かってきました。
テキストに則りApache,MySQLのクックブックを作成し、
インストールするレシピを作成して実行。

確認のためにvagrant側にsshしてみたところ、

[vagrant@localhost ~]$ ls -la
合計 64
drwx------. 5 vagrant vagrant  4096  3月  5 13:24 2017 .
drwxr-xr-x. 3 root    root     4096 12月  1 15:33 2016 ..
-rw-------. 1 vagrant vagrant   788  3月  5 01:40 2017 .bash_history
-rw-r--r--. 1 vagrant vagrant    18  5月 10 23:17 2016 .bash_logout
-rw-r--r--. 1 vagrant vagrant   176  5月 10 23:17 2016 .bash_profile
-rw-r--r--. 1 vagrant vagrant   124  5月 10 23:17 2016 .bashrc
drwxrw----. 3 vagrant vagrant  4096  2月 27 14:09 2017 .pki
drwx------. 2 vagrant root     4096  2月 26 09:57 2017 .ssh
-rw-r--r--. 1 vagrant vagrant     6 12月  1 15:33 2016 .vbox_version
drwx------. 9 vagrant vagrant  4096  3月  7 12:09 2017 chef-solo
-rw-rw-r--. 1 vagrant vagrant 20507  3月  5 13:24 2017 install.sh

chef-soloのディレクトリが出来ていました。
自動で出来るのでしょうか。。

[vagrant@localhost ~]$ ps auwx | egrep "(httpd|mysql)"
root      4542  0.0  0.3  11048  3348 ?        Ss   12:10   0:00 /usr/sbin/httpd
apache    4544  0.0  0.2  11048  2160 ?        S    12:10   0:00 /usr/sbin/httpd
apache    4545  0.0  0.2  11048  2160 ?        S    12:10   0:00 /usr/sbin/httpd
apache    4546  0.0  0.2  11048  2188 ?        S    12:10   0:00 /usr/sbin/httpd
apache    4547  0.0  0.2  11048  2160 ?        S    12:10   0:00 /usr/sbin/httpd
apache    4548  0.0  0.2  11048  2160 ?        S    12:10   0:00 /usr/sbin/httpd
apache    4549  0.0  0.2  11048  2160 ?        S    12:10   0:00 /usr/sbin/httpd
apache    4550  0.0  0.2  11048  2160 ?        S    12:10   0:00 /usr/sbin/httpd
apache    4551  0.0  0.2  11048  2160 ?        S    12:10   0:00 /usr/sbin/httpd
root      4749  0.0  0.1   5128  1432 ?        S    12:10   0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql     4851  0.0  1.5 125228 16268 ?        Sl   12:10   0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
vagrant   4891  0.0  0.0   5392   800 pts/0    S+   12:15   0:00 egrep (httpd|mysql)

プロセスも動いている様子。
レシピの中で起動する内容まで記載していたので、
インストールだけでなく起動した状態になっていました。

ファイルの配置

confファイル等共通で配布・管理したい設定ファイルは
/template/defaultのしたに配置すると良いとのことでした。
そのため、さきほど起動させたapachehttpd.confを配置し、実行。

    @@ -273,7 +273,7 @@
     # You will have to access it by its address anyway, and this will make
     # redirections work in a sensible way.
     #
    -#ServerName www.example.com:80
    +ServerName webdb:80

追加した設定が変更される内容がログに出ており、正しく配置ができました。

仮想サーバを破棄する

一度破棄して、レシピを再度適用したらどうなるかを確認。

$ vagrant destroy -f
==> default: Forcing shutdown of VM...
==> default: Destroying VM and associated drives...

vagrantコマンドを利用して、仮想マシンを破棄。
virtualbox側のGUIを見ていましたが、割と即座に消えました。
再度 vagrantを実行し、仮想マシンを立ち上げ、ログインし確認したところ
まっさらな状態になっていました。

chefのインストールも未実施の状態まで戻ったため、
一気にインストール、chefの実行まで行うbootstrapコマンドを実行しました。

$ knife solo bootstrap webdb

するとchefのインストールから始まり、先ほど設定した際と同様のログが流れ、
再度接続しプロセス確認しましたが、
dstat,Apache,MySQLが正しくインストールされた状態まで戻すことができました。

vagrant+chefの組み合わせが素晴らしい。。。
開発環境等はすごく使える仕組みだなと思いました。