serverspecみんなで集めて(゚Д゚)ウマー?

S
Sho Hashimotoネットワーク応用通信研究所
serverspecみんなで集めて(゜Д゜)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?
橋本 将
serverspecみんなで集めて(゜Д゜)ウマー?
serverspecというgemで遊んでみました
● できる事
● 構築済みサーバをRSpecでテスト
● 参考URL
● http://serverspec.org
● http://mizzy.org/blog/2013/03/24/3/
serverspecみんなで集めて(゜Д゜)ウマー?
導入
● おもむろに以下を実行
$ gem install serverspec
$ serverspec-init
※以下、出力は加工したもの※
Select a backend type: 2(local)
Select OS type of target host: 3(Debian)
serverspecみんなで集めて(゜Д゜)ウマー?
ファイル構成
● Rakefile
● spec/spec_helper.rb
● 接続の仕方(SSHなど)やOS(Debianなど)を変更する場
合はここ
● あるいはこのファイルだけ削除して再init(作成済み
のspecはそのまま)
● spec/<ホスト名>/<なにか名前>_spec.rb
● ntpd_spec.rbやhttpd_spec.rbなど好みの単位で分け
てspecを作成
serverspecみんなで集めて(゜Д゜)ウマー?
specの作成
● こんな記述を追記
● 環境によってうまいことやってくれる
● 詳細は後述
describe 'httpd' do
it { should be_installed }
it { should be_enabled }
it { should be_running }
end
serverspecみんなで集めて(゜Д゜)ウマー?
実行
● 以下のコマンドを実行
● 構築済みのサーバのテスト!!!
● 超age
$ rake spec
/usr/bin/ruby -S rspec spec/localhost/httpd_spec.rb
...
Finished in 0.99715 seconds
3 examples, 0 failures
serverspecみんなで集めて(゜Д゜)ウマー?
httpd_spec.rbの詳細(1)
● should be_installed
● 主語がインストール済みを期待
● Debianならdpkg -s <主語>
● Redhatならrpm -q <主語>
● よしなにしてくれる
serverspecみんなで集めて(゜Д゜)ウマー?
httpd_spec.rbの詳細(2)
● should be_enabled
● 主語が有効(ブート時に起動する)事を期待
● Debianならls /etc/rc3.d/ | grep <主語>
● Redhatならchkconfig --list <主語> | grep 3:on
● よしな(ry
serverspecみんなで集めて(゜Д゜)ウマー?
httpd_spec.rbの詳細(3)
● その他
● http://serverspec.org/matchers.html
● ファイルがsymlinkか見たり
● iptablesチェックしたり
● ファイルの中身見たり
● 色々ある
● spec_helper.rbについても省略
serverspecみんなで集めて(゜Д゜)ウマー?
試しにspecをいくつか書いてみた
● 後で以下にpushします
● https://github.com/sho-h/serverspec-examples.git
$ ls spec/localhost
bootlogd_debian_spec.rb mysql_debian_spec.rb
postgresql_debian_spec.rb
cron_debian_spec.rb ntpd_spec.rb
ssh_debian_spec.rb hosts_spec.rb
p2p_spec.rb users_spec.rb
httpd_spec.rb postgresql_redhat_spec.rb
serverspecみんなで集めて(゜Д゜)ウマー?
いくつかピックアップ
● bootlogd_debian_spec.rb
● users_spec.rb
● ntpd_spec.rb
● p2p_spec.rb
serverspecみんなで集めて(゜Д゜)ウマー?
bootlogd_debian_spec.rb
● /var/log/bootに起動時のログを保存する
設定の確認
describe '/etc/default/bootlogd' do
it { should contain "BOOTLOGD_ENABLE=Yes" }
end
serverspecみんなで集めて(゜Д゜)ウマー?
users_spec.rb
● ユーザ設定の確認
me = ENV["USER"]
describe me do
it { should_not belong_to_group me }
it { should belong_to_group 'adm' }
end
serverspecみんなで集めて(゜Д゜)ウマー?
ntpd_spec.rb
● NTPまわりの設定確認
● NTPの同期が継続している事を確認
describe 'ntp' do
it { should be_installed }
end
...
describe 'ntpq -pn' do
it { should get_stdout /^*d/ }
end
serverspecみんなで集めて(゜Д゜)ウマー?
p2p_spec.rb
● P2P関係のソフトウェアがインストールさ
れていない事を確認
● これ関係は深くやるなら別のツールがよい
● 簡単なチェックをついでにする程度
describe 'amule' do
it { should_not be_installed }
end
describe 'azureus' do
it { should_not be_installed }
end
serverspecみんなで集めて(゜Д゜)ウマー?
サンプルは以上
● 超簡単
● コードも少ないので把握も簡単
(serverspecも含めて)
serverspecみんなで集めて(゜Д゜)ウマー?
うれしい事
● ヒューマンエラー削減
● 経験に頼らないチェックが可能
● chef的なツールを使ってなくても導入可
● プロジェクト間の共有のしやすさ
● 使いまわしやすい
● 集まるほどうれしい
● 選ぶだけで終わる可能性すらある
serverspecみんなで集めて(゜Д゜)ウマー?
まだ気をつける必要がある事
● アップデート回数が多い
● 少し注意
● みんなで枯らして使いましょう
serverspecみんなで集めて(゜Д゜)ウマー?
以上です
● ご清聴ありがとうございました
● 何かいいアイディアかspecがあればくださ
い
1 sur 19

Recommandé

serverspecでサーバ環境のテストを書いてみよう par
serverspecでサーバ環境のテストを書いてみようserverspecでサーバ環境のテストを書いてみよう
serverspecでサーバ環境のテストを書いてみようDaisuke Ikeda
22.3K vues24 diapositives
Serverspecを使ってみた話 par
Serverspecを使ってみた話Serverspecを使ってみた話
Serverspecを使ってみた話Yasufumi Moritake
1.1K vues22 diapositives
ポリドックにServerspecを教えよう! par
ポリドックにServerspecを教えよう!ポリドックにServerspecを教えよう!
ポリドックにServerspecを教えよう!ftnk
1.5K vues23 diapositives
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅- par
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅- Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅- Daisuke Ikeda
3.3K vues23 diapositives
Serverspecの活用tips紹介 par
Serverspecの活用tips紹介Serverspecの活用tips紹介
Serverspecの活用tips紹介Daisuke Ikeda
4.5K vues41 diapositives
Serverspec at Testing Framework Meeting par
Serverspec at Testing Framework MeetingServerspec at Testing Framework Meeting
Serverspec at Testing Framework MeetingGosuke Miyashita
6.6K vues34 diapositives

Contenu connexe

Tendances

initとプロセス再起動 par
initとプロセス再起動initとプロセス再起動
initとプロセス再起動Takashi Takizawa
49.2K vues29 diapositives
Mongo dbのgridfsについて par
Mongo dbのgridfsについてMongo dbのgridfsについて
Mongo dbのgridfsについてMasahiro Saito
2.9K vues33 diapositives
社内勉強会資料(Varnish Module) par
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)Iwana Chan
7K vues35 diapositives
ノンプログラマのためのウェブサーバ入門 par
ノンプログラマのためのウェブサーバ入門	ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門 Atsu Yamaga
7.1K vues30 diapositives
Webサーバ勉強会#1_prefork_8-15 par
Webサーバ勉強会#1_prefork_8-15Webサーバ勉強会#1_prefork_8-15
Webサーバ勉強会#1_prefork_8-15mashan94
634 vues14 diapositives
Varnish 4.0 Release Party in Tokyo発表資料 par
Varnish 4.0 Release Party in Tokyo発表資料Varnish 4.0 Release Party in Tokyo発表資料
Varnish 4.0 Release Party in Tokyo発表資料Iwana Chan
9.5K vues72 diapositives

Tendances(20)

社内勉強会資料(Varnish Module) par Iwana Chan
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Iwana Chan7K vues
ノンプログラマのためのウェブサーバ入門 par Atsu Yamaga
ノンプログラマのためのウェブサーバ入門	ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門
Atsu Yamaga7.1K vues
Webサーバ勉強会#1_prefork_8-15 par mashan94
Webサーバ勉強会#1_prefork_8-15Webサーバ勉強会#1_prefork_8-15
Webサーバ勉強会#1_prefork_8-15
mashan94634 vues
Varnish 4.0 Release Party in Tokyo発表資料 par Iwana Chan
Varnish 4.0 Release Party in Tokyo発表資料Varnish 4.0 Release Party in Tokyo発表資料
Varnish 4.0 Release Party in Tokyo発表資料
Iwana Chan9.5K vues
Webサーバ勉強会03 par oranie Narut
Webサーバ勉強会03Webサーバ勉強会03
Webサーバ勉強会03
oranie Narut1.7K vues
Fabricでサーバー管理をDRYにしよう par max747
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
max74710.7K vues
HTTP/2 in nginx(2016/3/11 社内勉強会) par Yoko TAMADA
HTTP/2 in nginx(2016/3/11 社内勉強会)HTTP/2 in nginx(2016/3/11 社内勉強会)
HTTP/2 in nginx(2016/3/11 社内勉強会)
Yoko TAMADA1.7K vues
ネットワークエンジニアのための Puppet / Chef par npsg
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
npsg8.1K vues
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk par BIGLOBE Tech Talk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
開発エンジニアがChefで テスト駆動サーバー設定してみた #biglobetechtalk
BIGLOBE Tech Talk3.9K vues
Webサーバ勉強会4 nginx で php-fpm を動かしてみた par do_aki
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
do_aki3.8K vues
VarnishではじめるESI par Iwana Chan
VarnishではじめるESIVarnishではじめるESI
VarnishではじめるESI
Iwana Chan11.4K vues
Webサーバのチューニング par Yu Komiya
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
Yu Komiya9.6K vues

Similaire à serverspecみんなで集めて(゚Д゚)ウマー?

実は怖くないDevOps par
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOpsMasanori Ishigami
1.4K vues57 diapositives
TripleOの光と闇 par
TripleOの光と闇TripleOの光と闇
TripleOの光と闇Manabu Ori
9.3K vues45 diapositives
WindowsでMySQL入門 par
WindowsでMySQL入門WindowsでMySQL入門
WindowsでMySQL入門Hidenori Ishii
12.7K vues43 diapositives
RでつくるWebアプリ~rApache編~ par
RでつくるWebアプリ~rApache編~RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~Kazuya Wada
4.7K vues21 diapositives
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE par
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE辰徳 斎藤
5.6K vues32 diapositives
お手軽並列処理 par
お手軽並列処理お手軽並列処理
お手軽並列処理博文 斉藤
2K vues21 diapositives

Similaire à serverspecみんなで集めて(゚Д゚)ウマー?(20)

TripleOの光と闇 par Manabu Ori
TripleOの光と闇TripleOの光と闇
TripleOの光と闇
Manabu Ori9.3K vues
RでつくるWebアプリ~rApache編~ par Kazuya Wada
RでつくるWebアプリ~rApache編~RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
Kazuya Wada4.7K vues
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE par 辰徳 斎藤
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
辰徳 斎藤5.6K vues
〜Apache Geode 入門 Multi-site(WAN)構成による クラスター連携 par Akihiro Kitada
〜Apache Geode 入門 Multi-site(WAN)構成によるクラスター連携〜Apache Geode 入門 Multi-site(WAN)構成によるクラスター連携
〜Apache Geode 入門 Multi-site(WAN)構成による クラスター連携
Akihiro Kitada567 vues
自分色のLinuxホームサーバーを作ってみよう par Masahiko Hashimoto
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
Masahiko Hashimoto2.1K vues
そろそろRStudioの話 par Kazuya Wada
そろそろRStudioの話そろそろRStudioの話
そろそろRStudioの話
Kazuya Wada48.6K vues
CloudFoundry 2 on Apache CloudStack 4.2.1 par Kotaro Noyama
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
Kotaro Noyama453 vues
serverspecを使用したサーバ設定テストの実例 par Koichi Shimozono
serverspecを使用したサーバ設定テストの実例serverspecを使用したサーバ設定テストの実例
serverspecを使用したサーバ設定テストの実例
Koichi Shimozono1.8K vues
恋に落ちるデプロイツール par totty jp
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツール
totty jp5.1K vues
Nseg20120825 par hiro345
Nseg20120825Nseg20120825
Nseg20120825
hiro3451.1K vues
20190926_Try_RHEL8_NVMEoF_Beta par Kohei KaiGai
20190926_Try_RHEL8_NVMEoF_Beta20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta
Kohei KaiGai1K vues

serverspecみんなで集めて(゚Д゚)ウマー?