Serverspec
Minori Tokuda
- Vagrant立ち上げ ======================
- 添付のVagrantファイルを展開し、ディレクトリの中で
vagrant up
を実行。 vagrant ssh server1
で一つ目のサーバーに接続gem install serverspec --no-document
でServerspecをインストールsudo vi /etc/hosts
で以下を追加
192.168.33.11 server2
- ひな形の作成 ======================
mkdir remote-spec
cd remote-spec
serverspec-init
- OS typeは
UN*X
- backendは
ssh
- vagrant instanceは
n
- hostname は
server2
- OS typeは
- リモート側のテスト(1) ======================
- remote-specディレクトリ内で、
rm spec/server2/sample_spec.rb
vim spec/server2/mysql_server_spec.rb
で以下を入力
require 'spec_helper'
# check if MySQL server is installed on server2
describe package('mysql-server') do
it { should be_installed }
end
# confirm connection to MySQL server
describe command('mysqladmin ping -h localhost -uroot --connect_timeout=1') do
its(:exit_status) { should eq 0 }
end
describe file('/etc/my.cnf') do
its(:content) { should match /^user=mysql$/ }
end
rake spec:server2
# passwordはvagrant
- リモート側のテスト(2) ======================
ssh vagrant@server2
#password => vagrantsudo yum install -y mysql-server
sudo service mysqld start
rake spec:server2
# passwordはvagrant
- ローカルホスト側のテスト(1) ======================
- remote-specディレクトリ内で、
mkdir spec/server1
vim spec/server1/mysql_client_spec.rb
で以下を入力
require 'spec_helper'
set :backend, :exec
# check if mysql client is installed on localhost
describe package('mysql') do
it { should be_installed }
end
# confirm connection to server2
describe command('mysqladmin ping -h server2 -uroot --connect_timeout=1') do
its(:exit_status) { should eq 0 }
end
=> 失敗する
- ローカルホスト側のテスト(2) ====================== server1にmysqlを入れる
sudo yum install -y mysql
mysql -uroot -h server2
以下を入力
CREATE USER root@192.168.33.10;
GRANT ALL ON *.* TO root@192.168.33.10;
rake spec:server1
=> 成功する(はず)
- テスト全体の実行 ======================
rake spec:all
=> 成功する(はず)