Top Banner
Serverspecを自分好みにアレンジ スクリーンショット証跡保存を撲滅 TIS株式会社 池田 大輔 2017.3.31
23

Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

Apr 06, 2017

Download

Technology

Daisuke Ikeda
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

Serverspecを自分好みにアレンジスクリーンショットで証跡保存を撲滅

TIS株式会社池田 大輔

2017.3.31

Page 2: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

Hello!I am Daisuke IKEDA

You can find me at @ike_dai

2

Page 3: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

こんなことをなくしたい

3

Page 4: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

Bad...

4

$ ps Excel.. $ rpm -qa Excel.. $ ss Excel.. $ ip addr ・・・

No. テスト項目 結果 担当者 日付

001 プロセスが起動していること OK 池田 2016.3.10

002 ポートがリッスンしていること OK 池田 2016.3.10

003xxパッケージがインストールされていること

NG 池田 2016.3.10

Page 5: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

Bad...

5

スクリーンショットでエビデンス保存

Page 6: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

極力Serverspecで自動化できないか?

6

Page 7: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

Resource Type

テスト対象のリソース指定

fileportpackagecommandserviceなど

その他、Resource Typeはこちら http://serverspec.org/resource_types.html

7

describe package(package) do it { should be_installed }end

Page 8: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

Matcher

どうあるべきかの定義

filebe_file: 指定したパスがファイルであるべきbe_directory:指定したパスがディレクトリであるべきcontent match: ファイルの中身に指定した文字列が含まれているべき

portbe_listening: 指定したポートがリッスン状態であるべき

servicebe_enabled : 起動設定が有効になっているべきbe_running: 起動しているべき

packagebe_installed: インストールされているべき

など8

describe package(package) do it { should be_installed }end

Page 9: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

この枠組に乗っかれば

自分好みにアレンジ可能なはず!!

9

Page 10: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

リソースタイプ「Command」

任意のコマンドの実行結果をテスト

10

describe command(‘ls -la’) do its(:stdout) { should match /hoge }end

いろんなことに活用できるので便利

Page 11: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

もっと複雑なことをするには厳しい

11

Page 12: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

Resource Typeを自分で作ってしまう

12

Page 13: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

リソースタイプ「ZabbixConfig」

OSSの監視ツール「Zabbix」の監視設定状況を

テストするリソースタイプ

13

Serverspec実行元

ZabbixZabbix APIをcallして確認

Page 14: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

リソースタイプ「ZabbixConfig」-仕様-

14

・ホストが設定されていることの確認

・ホストにテンプレートが割り当てられていることの確認

・ホストの監視先インタフェース設定が正しいことの確認

・ホストの監視設定が有効化どうかの確認

describe zabbix_config(‘server-01’) do it { should be_host } it { should have_template “Template OS Linux”} it { should have_interface ({ :ip => "10.2.2.2" }) } it { should be_valid }end

Page 15: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

リソースタイプ「ZabbixConfig」-仕様-

15

・ホストに割り当てられている特定の監視項目が有効であることの確認

・ホストに割り当てられているすべての監視項目が有効であることの確認

describe zabbix_config(‘server-01’) do its(:item_state) { should be_normal.with_itemkey(‘agent.ping’) } its(:all_item_state) { should_not include "not supported" }end

Page 16: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

リソースタイプ「ZabbixConfig」-仕様-

16

他にも ・ホストグループの存在確認

 ・マクロの設定の確認

 ・テンプレートの存在確認

 ・障害検知トリガーの設定確認

最低限よく使う設定系の処理は実装済み

Page 17: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

ZabbixConfigを使うには?

17

①zabbixapiというRubygemsパッケージの導入が必要

 $ gem install zabbixapi

②カスタマイズに必要なファイルを配置 コードはここから(https://github.com/ike-dai/serverspec/tree/zabbix)

   ・lib/serverspec/matcher/be_normal.rb

   ・lib/serverspec/matcher/be_valid.rb

   ・lib/serverspec/type/zabbix_config.rb

   ・lib/serverspec/helper/type.rb

   ・lib/serverspec/matcher.rb

   ・lib/serverspec/matcher/be_enabled.rb

③環境変数に実行先のZabbixの情報登録 ZABBIX_URL,ZABBIX_USER,ZABBIX_PASS

【3ファイル追加】

【3ファイル置換】

Page 18: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

Serverspecって本来こういうことするもの?

18

Page 19: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

サービス利用やサーバレスによる運用など、

インフラエンジニアの構築対象は

単なるサーバから色々と変わってきているので、、

こんな用途での活用もありかも??

19

Page 20: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

構築を自動化するならあえて

Serverspecのテストの必要性って・・・?

20

Page 21: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

Ansible等でのコード

 パッケージ「zabbix-server-mysql」が導入されていること

実際は zabbix-server-mysqlパッケージに依存する多数が。。。

 ▶期待した状態になっているかはServerspecの出番

21

Page 22: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

手段はどうあれ、確実な運用実現に

テストは欠かせない

極力手間をかけずに効率よく実現を

Conclusion

22

Page 23: Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-

Thanks!Happy Premium-Friday!

You can find me at @ike_dai

23