Linuxにserverspecを導入する
Linux環境にserverspecを導入していく。
Linux環境の構築
Linux環境を構築しておく。
https://qiita.com/mkuser9/items/079cc4244821c8e220c2
rubyをインストールする
serverspecにはrubyが必要。
console
$ sudo yum -y install git
$ sudo yum install -y gcc gcc-c++ libyaml-devel libffi-devel libxml2 libxslt libxml2-devel libslt-devel
$ sudo yum install git-core
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
$ source ~/.bash_profile
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
$ sudo yum install -y bzip2 gdbm-devel openssl-devel libffi-devel libyaml-devel ncurses-devel readline-devel zlib-devel
$ RUBY_CONFIGURE_OPTS=--disable-install-doc ~/.rbenv/bin/rbenv install 2.6.3
$ rbenv global 2.6.3 && rbenv rehash
Gemfileの作成
Gemfileを作成して、gem
を追加する。
console
$ sudo vi Gemfile
Gemfile
source "https://rubygems.org"
gem 'serverspec'
gem 'rake'
console
$ bundle install
serverspecのインストール
以下のコマンドでserverspecをインストール。
console
$ gem install serverspec
サンプルテストの作成
console
$ serverspec-init
Select OS type:
1) UN*X
2) Windows
Select number: 1
Select a backend type:
1) SSH
2) Exec (local)
Select number: 2
Vagrant instance y/n: n
Input target host name: www.example.jp
+ spec/
+ spec/www.example.jp/
+ spec/www.example.jp/sample_spec.rb
+ spec/spec_helper.rb
+ Rakefile
+ .rspec
テスト内容を記述
テストファイルは、spec/localhost/sample_spec.rb
に生成されているので、テストの内容に合わせてテストファイルを修正する。
console
vi spec/localhost/sample_spec.rb
sample_spec.rb
にテストを記述する。
sample_spec.rb(sample)
require 'spec_helper'
describe "gitについてのテスト" do
context "環境設定" do
describe package('git'), :if => os[:family] == 'redhat' do
it "インストールされている" do
expect be_installed
end
end
end
end
describe "git-coreについてのテスト" do
context "環境設定" do
describe package('git-core'), :if => os[:family] == 'redhat' do
it "インストールされている" do
expect be_installed
end
end
end
end
describe "httpdについてのテスト" do
context "環境設定" do
describe package('httpd'), :if => os[:family] == 'redhat' do
it "インストールされている" do
expect be_installed
end
it "enabledされている" do
expect be_enabled
end
it "runningされている" do
expect be_running
end
end
end
end
describe "portについてのテスト" do
context "環境設定" do
describe port(80) do
it "listeningされている" do
expect be_listening
end
end
end
end
sample_spec.rb
の初期状態。
sample_spec.rb(default)
require 'spec_helper'
describe package('httpd'), :if => os[:family] == 'redhat' do
it { should be_installed }
end
describe package('apache2'), :if => os[:family] == 'ubuntu' do
it { should be_installed }
end
describe service('httpd'), :if => os[:family] == 'redhat' do
it { should be_enabled }
it { should be_running }
end
describe service('apache2'), :if => os[:family] == 'ubuntu' do
it { should be_enabled }
it { should be_running }
end
describe service('org.apache.httpd'), :if => os[:family] == 'darwin' do
it { should be_enabled }
it { should be_running }
end
describe port(80) do
it { should be_listening }
end
テストの実行
以下のコマンドでテストを実行する。
console
$ rake spec
Author And Source
この問題について(Linuxにserverspecを導入する), 我々は、より多くの情報をここで見つけました https://qiita.com/mkuser9/items/4731139449925797738e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .