細かい事を抜きにしてServerSpecを速攻試してみた
サーバーの設定をしていて、やはり設定が漏れてしまうことが多々ある。
そういえばサーバーのテストができるツールがあったよなーと思い出したのが、ServerSpecだった。
とりあえず細かいことは抜きにして、試してみた。
ServerSpecとは?
With serverspec, you can write RSpec tests for checking your servers are configured correctly. Serverspec tests your servers' actual state through SSH access, so you don't need to install any agent softwares on your servers and can use any configuration management tools, Puppet, Chef, CFEngine and so on.
サーバーが正しく設定されているかチェックするためのRSpecのテストを書くことができます。
ServerspecはSSHアクセスを介して、サーバの実際の状態をテストしますので、あなたのサーバーにエージェントソフトウェアをインストールする必要はありませんし、どのような構成管理ツール、というようにPuppet、Chef、cfengineのとを使用することができます。
サーバー側にエージェントをインストールする必要がない!
これは大きいと思う。
インストールと実行
参考にしたサイト
serverspecの使い方
ありがとうございます!
$ gem install serverspec
$ serverspec-init
Select OS type:
1) UN*X
2) Windows
Select number: 1
Select a backend type:
1) SSH
2) Exec (local)
Select number: 1
Vagrant instance y/n: n
Input target host name: www.example.jp
+ spec/
+ spec/www.example.jp/
+ spec/www.example.jp/httpd_spec.rb
+ spec/spec_helper.rb
+ Rakefile
initするとどんなサーバーなのか質問されるので、回答する。
コマンド実行したディレクトリにspecディレクトリが生成されている。
spec以下にさきほど入力したホスト名でディレクトリがあり、そこにサンプルのテストコードが生成される。
require 'spec_helper'
describe package('httpd') do
it { should be_installed }
end
describe service('httpd') do
it { should be_enabled }
it { should be_running }
end
describe port(80) do
it { should be_listening }
end
describe file('/etc/httpd/conf/httpd.conf') do
it { should be_file }
its(:content) { should match /ServerName www.example.jp/ }
end
apacheが入っているかチェックするテストコードみたい。
サンプルを試してみる。
$ rake spec
・
・
・
略)
Finished in 0.79426 seconds
6 examples, 1 failure
※最初はrakeが無い!って怒られたようなので、gem install rakeを行った。
6個のうち1個テストが通らなかったらしい。。。
httpd.confのServerNameがホスト名と合ってないっぽい。あとで見てみよう。
ハマったところとしては、sshするときのユーザーがよくなかったというのがあった。
実はサーバー(さくらのVPS)を設定したときに、rootでssh接続できないようにしていた。
なので、一般ユーザでテストを行っていたのだけど、rootじゃないと叩けないコマンド(たぶんserviceとか)が叩けなくてテストが通らずにいた。
rootでsshできるようにサーバーを設定し直したところ、テストが通るようになった。
まだまだ覚えることは多いなー^^;
まとめ
ServerSpecはサーバーにインストールいらずで、手軽に使える良いツール。
RSpecをチームで共有するとテストの効率があがるかも?
Author And Source
この問題について(細かい事を抜きにしてServerSpecを速攻試してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/maaaato/items/795a074e7e2d4a71039d著者帰属:元の著者の情報は、元の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 .