Chef実践入門を実践してみる その6
Apache,MySQLのインストール
だんだん仕組みが分かってきました。
テキストに則りApache,MySQLのクックブックを作成し、
インストールするレシピを作成して実行。
[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のしたに配置すると良いとのことでした。
そのため、さきほど起動させたapacheのhttpd.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の組み合わせが素晴らしい。。。
開発環境等はすごく使える仕組みだなと思いました。