目次 1. Serverspec とは 1.1. Serverspecとは 1.2. Serverspecで出来る事 2. セットアップ 2.1. 必要なもの 2.2. インストール 3. デモ 3.1. デモ環境について 3.2. テスト対象サーバーの登録 3.3. サンプルテストの中身 3.4.

Similar documents
IIJ Technical WEEK アプリ開発を楽にするRuby PaaS「MOGOK」について

ruby novice ruby novice ruby novice.

CLAIM接続利用手順

CLAIM接続利用手順

2 Rails pico planner camel case camel pico planner _ pico_planner snake case snake - chain case chain pico planner pico-planner CSS id class 2.3 Rails

appli_HPhi_install

利用者

Nagios XI - SNMPでのLinux監視

AWS Deck Template

Agenda 2

第 1 章ターミナルの使い方 Ubuntu の場合は同種のソフトウェアに 端末 という名前が付いていますが 本書では OS X に合わせて ターミナル と呼ぶことにします 端末を起動するには Dash *1 に対して term というキーワードを入力し 検索結果の中から 端末 を探してクリックします

スライド 1

Installation Guide for Linux

An introduction and future of Ruby coverage library

環境セットアップ

ii

ruby learner - Ruby

はじめに 1. 概要本書では SuitePRO V3 にて提供している迷惑メールフィルタのバージョンアップ手順について案内しています なお この手順につきましては 迷惑メールフィルタ機能について オンラインマニュアルの内容通りに設定されていることを前提条件とします

目次 1. はじめに 本文書の目的 前提条件 略語 事前準備 ホスト名の名前解決 Linux 版パッケージ システム要件 ソフトウェア要件 パッケージ構成

Docker Haruka Iwao Storage Solution Architect, Red Hat K.K. February 12, 2015

Raspberry Pi で WEB カメラを使用 会津大学 RT ミドルウェア講習会 2017 The University of Aizu

_01 日医標準レセプトソフトクラウド版 CLAIM 接続利用手順 ベンダー向け 2017 年 8 月 23 日 日本医師会 ORCA 管理機構株式会社

AWS Deck Template

DAQ-Middleware 開発環境の準備

目次 1. 改版履歴 概要 WEB 版薬剤在庫管理システムのインストール 事前準備 インストール アプリケーションのセットアップ WEB 版薬剤在庫管理システムの初期設定

App Bridge Monitor Linux Agent インストールガイド Ver.1.9.0

ADempiere (3.5)

Microsoft Word - Flexera_LicenseServerInstallation2015

2013年『STSSスキルコミュニティ』 テーマ別Kickoff資料

演習に必要な

目次 1.rug について zmd の動作確認 rug からの情報の取得 rug コマンドの使用例 アップデート可能なパッケージの一覧を表示 パッケージを検索する 特定のパッケージをインストール / ア

zabbix エージェント インストールマニュアル [Windows Server] 第 1.2 版 2018 年 05 月 18 日 青い森クラウドベース株式会社

$ cmake --version $ make --version $ gcc --version 環境が無いあるいはバージョンが古い場合は yum などを用いて導入 最新化を行う 4. 圧縮ファイルを解凍する $ tar xzvf gromacs tar.gz 5. cmake を用

Server Backup Manager 5.0 Debian および Ubuntu システムへの Server Backup Free のインストール 1. APT-GET をしてServer Backup Free をインストールする 2. Server Backup Free のインストール

HARTING Node.js Environment for HAIIC MICA 日本語 HARTING Node.js Environment for HAIIC MICA HARTING IT Software Development Marienwerder Str. 3, E

D1212/D1224/D3284 JBOD Configuration Utility

Red Hat Enterprise Linuxのcron(8)デーモンにデフォルト定義されたtmpwatch命令の動作による、WebOTXのトラブル対処方法

NEC Express5800 シリーズ N /158 Fibre Channel コントローラ ドライバインストール手順書 A

InterSafe_Sales_Guide

最も一般的な手法: ファイアウォールによってノード間の MPI 通信がブロックされた場合の対応方法

リバースプロキシー (シングル構成) 構築手順

CLUSTERPRO MC RootDiskMonitor CLUSTERPRO MC StorageSaver for BootDisk 仮想環境 ( ゲスト OS) での設定手順 (Linux 版 Windows 版 ) 2017(Apr) NEC Corporation 仮想環境 ( ゲスト

NEC COBOL Media V2.0 セットアップカード SL438740B01-1

平成22年度「技報」原稿の執筆について

ServerView RAID Manager VMware vSphere ESXi 5 インストールガイド

レセプト電算ファイルのCD書き込み手順書

help gem gem gem my help

内容環境... 3 対応 OS の変更... 3 関連アプリケーションの追加... 4 機能追加... 5 グラフ機能... 5 稼働率... 8 サービス一括削除 自動復旧エスカレーションコマンド AWS カスタムメトリックス監視 NRPE 任意監視... 11

目次 1. 改版履歴 概要 WEB 版薬剤在庫管理システムのインストール 事前準備 インストール アプリケーションのセットアップ 日レセと連携するための有効化設定 WEB

サイボウズ Office 7 デザインギャラリーマニュアル

ドライバインストールガイド

Microsoft Word - SE第15回.doc

Managed Firewall NATユースケース

システム管理者ガイド GIGAPOD 3 システム管理者ガイド - 負荷分散構成 第 1.01 版 2013 年 3 月 改訂履歴 No バージョン 日付 作成者 改訂者 補足 /09 トライポッドワークス 初稿 /03 トライポッドワークス cr

PowerPoint プレゼンテーション

ヒント $basearch はYum であり いえればベースアーキテクチャです(32ビット 64ビットなど) 3. ファイルにがきまれたかをするには のコマンドをします cat /etc/yum.repos.d/r1soft.repo 1.2 パッケージをインストールする 1. インストールされてい

Alibaba Cloud [ ナレッジドキュメント ] AWS EC2 から Alibaba Cloud ECS へのマイグレーション手順 (Linux 版 ) AWS EC2 から Alibaba Cloud ECS への マイグレーション手順 (Linux 版 ) Ver

目次 1. 本書の役割 監視対象ノードの登録 Agent のインストール Agent の前提条件 対象 OS 監視対象サーバへのログイン セットアップファイルのダウンロード インストール... 5

GitLab + Dokku で作る CI/ CD 環境 Kazuhiro NISHIYAMA 第 78 回 Ruby 関西勉強会 2017/07/29 Powered by Rabbit 2.2.0

(Microsoft Word - Compiere3.0Windows\203C\203\223\203X\203g\201[\203\213\203K\203C\203h.doc)

PowerPoint Presentation

bash on Ubuntu on Windows bash on Ubuntu on Windows bash on Ubuntu on Windows bash on Ubuntu on Windows bash on Ubuntu on Windows ˆ Windows10 64bit Wi

ログイン時の ID パスワードは マイページ と同一です インストール前の状態の場合 ログイン後に表示されるページの ライセンス一覧 に該当製品シリアルの表示はされません インストール完了後 ライセンス管理ページご利用シリアルの一覧が表示されます 以上でライセンス管理ページの作成は完了です なお セ

Helix Swarm2018.1アップグレード手順

Microsoft Word doc

9 rbenv rbenv ruby 9.1 rbenv rbenv rbenv ruby ruby-build ruby 9.2 rbenv macos.bash_profile ~/.bash_profile ~/.bash_profile.bak $ touch ~/.bash_profile

ELC 5.3

アプリケーションサーバ JBoss超入門

音声認識サーバのインストールと設定

ServerView ESXi CIM Provider / ServerView RAID Core Provider VMware vSphere ESXi 6.5 / 6.7 インストールガイド

目次 1. はじめに 本書対象者 PALRO のアプリケーションについて Ubuntu 8.04LTS の入手について Linux 上での開発環境の構築 事前準備 Ubuntu のインストール..

ServerView RAID Manager VMware vSphere ESXi 5 インストールガイド

OSSTechドキュメント

VPS では 通 常 はインスタンスが 1 個 です 停 止 と 再 起 動 を 選 択 できます CloudStack では インスタンスの 追 加 と 破 棄 の 機 能 を 利 用 することにより お 客 様 が 契 約 されているインスタンス 数 分 の 仮 想 サーバを 自 由 に 追 加

intra-mart Accel Platform — intra-mart Sphinxドキュメント ビルド手順書   第2版  

RedHat OpenShift Container Platform 用の HyperFlex FlexVolume Storage Integration の設定

PowerPoint プレゼンテーション

(Microsoft PowerPoint - \201y\214\366\212J\224\305\201zENOG45.pptx)

ksocket Documentation

HULFT の通信をよりセキュアに HULFT と SSH Tectia を組み合わせたセキュアで強力なファイル転送 Compatibility Note 2008 年 9 月 株式会社セゾン情報システムズの企業内 企業間通信ミドルウェアである HULFT は ファイル転送のアプリケーションとして

FUJITSU Storage ETERNUS BE50 S2 運用ガイド Symantec Backup Exec 2014 修正適用編

サーバセキュリティサービスアップグレード手順書 Deep Security 9.6SP1 (Windows) NEC 第 1 版 2017/08/23

Emacs Ruby..

DNSサーバー設定について

EV3 の初期設定

Alibaba Cloud [ ナレッジドキュメント ] AWS EC2 から Alibaba Cloud ECS へのマイグレーション手順 (Linux 版 ) AWS EC2 から Alibaba Cloud ECS へのマイグレーション手順 (Linux 版 ) Ver SB

UCS M シリーズ サーバでの Redhat/CentOS オペレーティング システムのインストール

WinXp-Rmenu

更新履歴 2010 年 6 月 1 日 初版 2011 年 1 月 7 日 2 版 2011 年 6 月 23 日 3 版 2011 年 10 月 28 日 4 版 2012 年 6 月 28 日 5 版 2013 年 7 月 16 日 6 版 2013 年 8 月 8 日 7 版 2013 年 1

OSSTechドキュメント

ソフトウェアエンジニアリング - 調査 #52

IPM Release 2.6 へのアップグ レード

OpenAM 9.5 インストールガイド オープンソース ソリューション テクノロジ ( 株 ) 更新日 : 2013 年 7 月 19 日 リビジョン : 1.8

gworksctl コマンドマニュアル 2019/6/17 株式会社 GDEP アドバンス 本書は GDEP Advance gworksctl コマンドマニュアルです G-Works G-Works Deep Learning Distribution for Linux( 以下 G-Works)

<4D F736F F D CA08CC082AA B835E B D C58B9194DB82B382EA82DC82B582BD2E646F63>

HeartCoreインストールマニュアル(PHP版)

スライド 1

ServerView ESXi CIM Provider VMware vSphere ESXi 6.5 インストールガイド

HeartCore(PHP 版 ) インストール手順について説明いたします なお 本資料は 例として下記内容を前提として説明しております 環境情報 対象 OS: Linux ( ディストリビューション : Red Hat Enterprise Linux Server) APサーバ : Apache

Transcription:

Serverspec でインフラテスト 2018 年 4 月 20 日株式会社フルマークス大久保和彦

目次 1. Serverspec とは 1.1. Serverspecとは 1.2. Serverspecで出来る事 2. セットアップ 2.1. 必要なもの 2.2. インストール 3. デモ 3.1. デモ環境について 3.2. テスト対象サーバーの登録 3.3. サンプルテストの中身 3.4. サンプルテストの実行 3.5. エラーを解消する 3.6. 再度サンプルテストの実行 3.7. テスト対象サーバーの追加 4. まとめと課題 2

1. Serverspec とは 1.1. Serverspec とは Ruby で実装されたサーバの状態をテストするためのフレームワーク Ruby のテストフレームワークである RSpec の書き方に準拠 2018/4/19 時点での最新バージョンは 2.41.3 3

1. Serverspec とは 1.2. Serverspec で出来る事意図した設定や処理がサーバーに適切に反映されていることを確認できます ホスト名が正しく設定されているかサーバにあるパッケージがインストールされているかミドルウェアが起動しているか自動起動の設定はできているか TCPの何番ポートがLISTEN 状態になっているか などなど これにより Chef や Ansible 等で構築したサーバーが正常に稼働していることを保証できます また サーバーの設定変更を行った後でテストを実行することで既存の設定に問題が発生していないかどうかも確認することができます 4

2. セットアップ 2.1. 必要なもの 以下を Serverspec の実行環境にインストールします Ruby $ ruby -v ruby 2.4.2p198 (2017-09-14 revision 59899) [x64-mingw32] RubyGems $ gem -v 2.6.14 Bundler $ bundler -v Bundler version 1.16.1 今回は 全て chefdk-2.4.17-1-x64.msi に同梱のものを使用しました 5

2. セットアップ 2.2. インストール Gemfile を書いて Bundler でインストールします $ mkdir -p /d/work/git/pri/serverspec-sample/serverspec/ $ cd /d/work/git/pri/serverspec-sample/serverspec/ $ vim Gemfile Gemfile の内容 source "https://rubygems.org" gem 'serverspec' gem 'rake' gem 'highline' インストール $ bundle install --path vendor/bundle 6

3.1. デモ環境について ServerSpec の実行環境 Windows (AWS Workspaces) テスト対象として RHEL7 の WEB サーバーを 2 台用意 dev-web01 live-web01 7

3.2. テスト対象サーバーの登録 serverspec-init を実行してテスト対象のサーバー dev-web01 を登録します $ bundle exec 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: dev-web01 + spec/dev-web01/ + spec/dev-web01/sample_spec.rb 8

3.3. サンプルテストの中身 httpd(apache) のテストが書かれてます $ cat spec/dev-web01/sample_spec.rb require 'spec_helper' describe package('httpd'), :if => os[:family] == 'redhat' do it { should be_installed } end describe package('apache2'), :if => os[:family] == 'ubuntu' do it { should be_installed } end describe service('httpd'), :if => os[:family] == 'redhat' do it { should be_enabled } it { should be_running } end ( つづく ) 9

3.3. サンプルテストの中身 ( つづき ) describe service('apache2'), :if => os[:family] == 'ubuntu' do it { should be_enabled } it { should be_running } end describe service('org.apache.httpd'), :if => os[:family] == 'darwin' do it { should be_enabled } it { should be_running } end describe port(80) do it { should be_listening } end 10

3.4. サンプルテストの実行 rake コマンドを使用してサンプルテストを実行してみます $ bundle exec rake spec Package "httpd" should be installed (FAILED - 1) Service "httpd" should be enabled (FAILED - 2) should be running (FAILED - 3) Port "80" should be listening (FAILED - 4) ( 途中省略 ) Finished in 0.49597 seconds (files took 2.71 seconds to load) 4 examples, 4 failures 4 failures となっていて 失敗してます 11

3.5. エラーを解消する サーバー側で設定を行い エラーを解消してみます httpdのインストール # yum install -y httpd httpd サービスを起動 # systemctl start httpd.service httpd サービスの自動起動を有効化 # systemctl enable httpd.service 12

3.6. 再度サンプルテストの実行 再びサンプルテストを実行します $ bundle exec rake spec Package "httpd" should be installed Service "httpd" should be enabled should be running Port "80" should be listening Finished in 0.42497 seconds (files took 2.68 seconds to load) 4 examples, 0 failures 0 failures となっていて 成功するようになりました 無事対応完了です 13

3.7. テスト対象サーバーの追加 テスト対象のサーバー live-web01 を登録します dev-web01 の時と同じように以下を実施してテストが全て成功するようにします テスト対象サーバーの登録 サーバー設定 httpdのインストール httpdサービスを起動 httpdサービスの自動起動を有効化 (enabled) サンプルテストの実行 14

3.7. テスト対象サーバーの追加 ( テストの実行結果 ) テストを実行すると 2 台のサーバーのテストが実行され成功します $ bundle exec rake spec Package "httpd" should be installed Service "httpd" should be enabled should be running Port "80" should be listening Finished in 0.51004 seconds (files took 7.37 seconds to load) 4 examples, 0 failures Package "httpd" should be installed Service "httpd" should be enabled should be running Port "80" should be listening Finished in 0.69802 seconds (files took 4.12 seconds to load) 4 examples, 0 failures 15

4. まとめ まとめ ServerSpec 実行環境から 2 台の Linux サーバーに対して自動テストを実行しました 今後の課題 サーバー単位でテストを実行したい ( このままだと全サーバーのテストが実行されてしまう ) 環境 (DEV/STG/LIVE) や サーバー単位の固有情報の扱いをどうするか 同じテストケースはサーバーや環境をまたいで共有したい 16