狠狠撸

狠狠撸Share a Scribd company logo
FileMaker Server管理者のための
serverspec入門
2013/06/29
FM-Tokyo発表資料
松尾 篤(株式会社エミック)
? FM-Tokyoのライトニングトーク発表
「テスティングフレームワークとサー
バー運用」
2010年10月
テスティングフレームワークは
サーバーの運用にも使える
? 安定した継続的なサーバー運用
? 変化への対応
? セキュリティアップデート
? システムの更新や保守管理等
サーバーの運用管理で
必要になること
? 正常な状況とは何かを知る
? 回避したい状況とは何かを知る
? その上で現状の状態を知る
安定した運用のために
? 手動でさまざまな項目をチェックする
のは時間と手間がかかってしまう
? チェック項目や対象サーバーが増加、
対象バージョンが広がっていくと……
自動化の必要性
? テスティングフレームワーク
RSpec is testing tool for the Ruby
programming language.
RSpec
describe "OS X Serverの各種設定を確認" do
it "サーバーがスリープしない設定になっていること" do
`sudo systemsetup -getcomputersleep`.chomp.should == "Computer Sleep: Never"
end
it "OS X ServerのVPNサービスが動作していること" do
`sudo serveradmin status vpn | cut -d'"' -f2`.chomp.should == "RUNNING"
end
it "ソフトウェアRAIDの状態がオンラインであること" do
`diskutil listRAID | grep "Status:" | awk '{print $2}' | grep -v
'Online'`.chomp.empty?.should == true
end
end
RSpecでの記述例
? エミックでは2008年からRSpecを活用
? ただし、重複および冗長な箇所が出て
くることが少し気になっていた
? より簡潔にサーバーのテストを記述で
きないだろうか?
RSpecでサーバーのテスト
2013年3月
serverspecが公開
“With serverspec, you can write RSpec tests for
checking your servers are con?gured 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 con?guration management tools, Puppet,
Chef, CFEngine and so on.”
http://serverspec.org/
serverspec
? 宮下剛輔氏が今年3月に公開
? 構築済みのサーバーが意図通り設定さ
れているか確認するツール
? RSpecを使ってテストを簡潔に書ける
? MIT License
serverspec
? Red Hat based OS
? Debian Hat based OS
? Gentoo
? Solaris
? Darwin based OS (including OS X)
Supported OS
(OS Xの場合)
$ sudo gem install serverspec rake
$ serverspec-init
$ echo '-f doc -c' > .rspec
$ rake spec
※ただし、OS Xでは未実装項目が多いのが現状
serverspecの始め方
describe package('serverspec') do
it { should be_installed.by('gem').with_version('0.6.12') }
end
describe ?le('/Volumes/Backups') do
it { should be_mounted }
end
describe ?le('/usr/libexec/upsshutdown') do
it { should be_executable }
it { should be_mode 755 }
it { should be_owned_by 'root' }
it { should be_grouped_into 'wheel' }
end
describe cron do
it { should have_entry '2 4 * * * /usr/bin/fmsadmin restart -y adminserver' }
end
serverspecでの記述例
? シェルコマンド実行によるサーバーの
テストをスマートに実現
? テスト対象のサーバーにSSHで接続し
てコマンドをたたく
? もちろんローカルでも実行可
serverspecの概要
? RSpecのテストと併用可能
? 既存のRSpecによるテストを徐々に
serverspecベースに変更できる
serverspecはRSpecベース
デモ
1. Fork it
2. Create your feature branch
3. Commit your changes
4. Push to the branch
5. Create new Pull Request
How to contribute
(from README)
“serverspecとはシステムのあるべき状態を
簡潔に記述し継続的にテストするための
もの”
http://www.slideshare.net/mizzy/serverspec-hbstudy45
serverspecとは
? テスティングフレームワークはサーバー
の運用にも使える
? serverspecを使えばサーバーのあるべき
状態を簡潔に記述し継続的にテストで
きる
まとめ
? http://serverspec.org/
? https://github.com/mizzy/serverspec
? http://www.slideshare.net/mizzy/
serverspec-hbstudy45
関連URL

More Related Content

FileMaker Server管理者のためのserverspec入門