Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Server speckのご紹介
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
akira345
May 06, 2015
Technology
0
40
Server speckのご紹介
LT駆動開発14でServerSpecを軽く紹介しました。
akira345
May 06, 2015
Tweet
Share
More Decks by akira345
See All by akira345
えれくら!〜電気電子工作系制作・交流会〜#29
akira345
0
18
脱・同期処理!マイクロサービスにおける負荷分散の勘所
akira345
0
100
AWSデプロイツール紹介
akira345
0
58
40歳でやったこと
akira345
0
38
回路を読むために必要なこと
akira345
0
27
おれのAWSがこんなに辛い訳がない!!
akira345
0
33
Dockerを触ってみよう
akira345
0
95
アラフォー世代が基板を作ってみた(公開用)
akira345
0
150
ESP-WROOM-02でプチIoT
akira345
0
120
Other Decks in Technology
See All in Technology
Context Engineeringの取り組み
nutslove
0
360
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.4k
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.5k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.2k
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
470
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
260
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.5k
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
460
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
310
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
2k
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
670
Featured
See All Featured
Chasing Engaging Ingredients in Design
codingconduct
0
110
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
Are puppies a ranking factor?
jonoalderson
1
2.7k
Designing Experiences People Love
moore
144
24k
Marketing to machines
jonoalderson
1
4.6k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
94
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
77
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
How to build a perfect <img>
jonoalderson
1
4.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
How GitHub (no longer) Works
holman
316
140k
Transcript
ServerSpecの ご紹介 LT駆動勉強会14
お約束 ・本スライドで出てくる事象はフィクションです。 所属組織その他特定の事象に言及しているわけ ではないですし、実際にあったわけではないかもし れません。
ServerSpecとは? ServerSpecとは、サーバの状態をテストするため のフレームワークです。 ServerSpecは、テスト対象のサーバに対してSSH ログインしてテストするので、 ServerSpec用に何か特別なエージェントをインス トールする必要がありません。
サーバのテストって??? そもそもサーバ構築時、テストしてますか? ・phpinfoが出ればOK? ・DBがつながればOK? ・WordPressが動けばOK? ・プロセスが起動していればOK?
そもそもサーバ構築ってどうやってますか? ・コピペ駆動 ・手順書(エクセルやWikiとか紙とかテキストとか) ・ChefやAnsibleなど構成管理 ・シェルスクリプト(!) そもそもサーバの要件って決まってます?? (WordPressが動くサーバ用意して。など)
ありがちなミス • いままで問題なく動いていたのに、再起動したら SSHもWebもつながらなくなった!! ◦ iptablesの保存し忘れ ◦ Apacheの自動起動設定もれ
ありがちなミス • 気がついたらDBサーバの時計がズレている。 ◦ NTPサービス起動忘れ。 手順書に漏れていたり、どこかのサイトをコピペするとやり がち。 ちなみに、DBサーバの時刻がずれている時、急に時刻を 合わせると、 酷い目に合う可能性があります。
メールサーバも同様。
つまり • サーバの構築は構成管理などで(ある程度)自動 化できるけど、構築したサーバのテストも必要。 • 設定や構成管理のミスはそれ単体のテストでは検 証できない。(ChefSpecをパスしたからと言って サーバが要求通りの動作をしている訳ではない。) ◦ サーバもテスト駆動でやろう。
ServerSpecインストール 1:Rubyをインストール 2:gem install serverspec 3:ServerSpecのテストコードを出力したいディレク トリでserverspec-initを実行。 4:質問に答えると、ひな形が生成される。 Winな人はCygWinでもOK。 サーバ側はSSHさえつながればOK.
ServerSpecインストール 5:~/.ssh/configにssh接続情報をセット Host test.org HostName example.com IdentityFile ~/.ssh/example.com.id_rsa User webmaster
テストコードの例 require 'spec_helper' describe package('httpd'), :if => os[:family] == 'redhat'
do it { should be_installed } end describe port(80) do it { should be_listening } end 割と簡潔でわかりやすくかける。 OSの差異はある程度吸収してくれる。
テストって言われても・・・ 何をテストしていいのか分からない。という場合は、 ServerSpecのサイトにあるリソースを眺めてみて、 何がテストできるのか?から追いかけるのも手で す。 ServerSpecは既存のサーバに影響を与えないの で、気になるところや今動いているものが動いている テストを書いてみる。等から始めると良い。
テストすると何がいいの? ・テストコード自体が生きた資料(チェックリスト)に なる。 ・プログラムと違い、サーバのテスト項目はある程 度決まっているので、作ってしまえば、他のサーバ に流用が効く。 ・不具合が起こった時何が問題なのかが分かる。
ServerSpecでテストできる範囲 ・ServerSpecはSSHでつないで各種コマンドの実行 結果よりチェックを行う。 →サーバ内部からのチェック。 ・複数台のサーバと連携しているか?外部からつな がるか?等外部からのチェックはZabbixなどを使 う。
ServerSpecのちょっと残念なところ ・デフォルトではサーバごとにテストを書かないといけ ない。 →本当は機能や役割ごとにテストを書いて、インストー ルされた機能毎にテストを組み合わせて適用したい。 →設定いじれば結構柔軟にカスタム出来そうだけど、 rakeやRubyの知識が必要(本家にカスタム例あり)
まとめ ・構築手順書やマニュアルの類は所詮メンテされないし、読み 手を選ぶ。 (サーバ建てる毎に手順書やマニュアル作りますか??) ・構成管理やテストコードなど、インフラをコードで記述すること により、生きた手順書、チェックリストを作成することができる。 ・バージョン管理ができるし、差分チェックもできる。 ・自動化できる。他サーバに流用できる。 ・テストをすることによりある程度の安心感を得る。
参考サイト ・serverspecを使ってサーバの状態をテストしてみよう ・ServerSpec ・serverspec の論文公開します