こんにちは!beardです!
今回は、AmazonLinuxを使う時の実用的な設定をしてからServerspecによる確認を行います。
具体的にはOSのタイムゾーンの設定、EBS(HDD)の容量、PHPの設定、PHPのバージョンをServerspecにより診断します。
Serverspecのインストールと基本的な操作については、過去の記事『Amazon OSS編~Serverspecパート①~』をご覧ください。
1. OSのタイムゾーンの設定
EC2インスタンスはTokyoリージョンで立ち上げた場合でもOSのタイムゾーンがUTCになっていますのでまずこれをJSTにします。
1 |
cp /usr/share/zoneinfo/Japan /etc/localtime |
2. EBSサイズは初期では8GBに設定されており、それより大きい容量を割り当てても起動しただけではOSから認識されておりませんので、ディスクの正しいサイズを認識させます。今回は100GBのEBSを使用します。
1 |
sudo resize2fs /dev/sda1 |
3. PHPをインストールし、PHPの時刻設定とメモリの制限を設定します。
1 2 3 4 |
yum -y install php ←phpインストール vi /etc/php.ini date.timezone=Asia/Tokyo ←変更後 memory_limit=512M ←変更後 |
4. 上記の設定をserverspecで確認できるように記述すると以下のようになります。ディレクトリは「/local/i-incetanceID/spec/localhost/test_spec.rb」としています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
require 'spec_helper' describe command('date') do ←dateコマンド it { should return_stdout /JST/ } ←結果にJSTが含まれている end describe command("fdisk -l | grep filesys | awk '{print $4}'") do ←ディスク容量を表示させ it { should return_stdout /100G/ } ←100Gとなっている end describe 'PHP config' do context php_config('date.timezone') do ←PHPコンフィグのタイムゾーンが its(:value) { should eq 'Asia/Tokyo' } ←Asia/Tokyoになっている end context php_config('memory_limit') do ←PHPコンフィグのメモリ制限が its(:value) { should eq '512M' } ←512MBになっている end end describe command('php -v |grep PHP') do ←PHPのバージョンを表示 it { should return_stdout /5.3.*/ } ←バージョンが5.3.*になっている end |
5. /local/i-incetanceID/以下で「rake spec」コマンドでserverspecを実行します。
1 2 3 4 5 6 7 |
$ rake spec (in /local/i-instanceID) /usr/bin/ruby2.0 -S rspec spec/localhost/test_spec.rb .... Finished in 0.06612 seconds 5 examples, 0 failures ←5項目をテストして間違いが0個。 |
いかがでしたか?
Serverspecは通常のLinuxコマンドと組み合わせることで様々な項目をテストすることもできます。
次回もお楽しみに!!