Slide 1

Slide 1 text

Ansibleを学ぼう。Ansibleとは? ― 継続的な構成変更・テストの自動化に向けて

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

管理サーバ 変更対象 サーバ - name: install httpd yum: name: httpd state: present ・・・ プレイブック

Slide 5

Slide 5 text

管理サーバ 変更対象 サーバ - name: install httpd yum: name: httpd state: present ・・・ プレイブック 読み込ませる

Slide 6

Slide 6 text

管理サーバ 変更対象 サーバ - name: install httpd yum: name: httpd state: present ・・・ プレイブック 読み込ませる 自動構築

Slide 7

Slide 7 text

インフラ構成のコード化と構築の自動化のメリット 構築作業の省力化が可能

Slide 8

Slide 8 text

インフラ構成のコード化と構築の自動化のメリット 構築作業の省力化が可能 手動での構築作業による作業ミスを防ぐことが可能

Slide 9

Slide 9 text

インフラ構成のコード化と構築の自動化のメリット コードによりインフラの構成が見える化、構成が把握しやすくなる

Slide 10

Slide 10 text

インフラ構成のコード化と構築の自動化のメリット コードによりインフラの構成が見える化、構成が把握しやすくなる コードで記述することで再利用が容易 、他のシステムでも使い回せる

Slide 11

Slide 11 text

なぜ? Ansibleが注目されているのか?

Slide 12

Slide 12 text

なぜ? Ansibleが注目されているのか? Shell Script Power Shell

Slide 13

Slide 13 text

なぜ? Ansibleが注目されているのか? Shell Script Power Shell 満たす

Slide 14

Slide 14 text

なぜ? Ansibleが注目されているのか?

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

手順書を作成 手順書を見ながら 手動で 構築作業を実施 今までのインフラ構築 必要に応じて変更作 業を 手動で実施 構成変更の履歴を ドキュメント を作成して管理

Slide 17

Slide 17 text

手順書を作成 手順書を見ながら 手動で 構築作業を実施 今までのインフラ構築 必要に応じて変更作 業を 手動で実施 構成変更の履歴を ドキュメントを作成して管理

Slide 18

Slide 18 text

バージョン管理 テスト Infrastructure as Code を用いたインフラ構築 プロジェクトの自動 化 インフラの構成をコード化し、 バージョン管理システムで管理する 本番環境に変更を加える前に、 テスト環境で変更内容をテストする コードをバージョン管理システムに Push してから 本番環境に適用する までのテストや構築・変更作業を 自動化する ソフトウェア開発で使用される 以下の手法をインフラに適用

Slide 19

Slide 19 text

Infrastructure as Code 関連のツールの分類 • Application Service • Deployment Orchestration • System Configuration Configuration • Cloud or VM • OS Install Bootstrapping 他のサーバやロードバランサ などと連携させ、サービスを 提供可能にする ミドルウェアの インストール・設定 OSのインストールや 仮想マシンの作成など

Slide 20

Slide 20 text

Infrastructure as Code 関連のツールの分類 • Application Service • Deployment Orchestration • System Configuration Configuration • Cloud or VM • OS Install Bootstrapping 他のサーバやロードバランサ などと連携させ、サービスを 提供可能にする ミドルウェアの インストール・設定 OSのインストールや 仮想マシンの作成など

Slide 21

Slide 21 text

Configuration レイヤーのツール(構成管理ツール) ☛ OS 起動後に、主にミドルウェアのインストールや設定を行うツール Ansible や Chef、Puppet などが代表的なツール

Slide 22

Slide 22 text

Configuration レイヤーのツール(構成管理ツール) 宣言的 抽象化 冪等性 収束化

Slide 23

Slide 23 text

Configuration レイヤーのツール(構成管理ツール) 宣言的 ☛ 処理の方法ではなく、システムの最終的なあるべき状態を記述する

Slide 24

Slide 24 text

Configuration レイヤーのツール(構成管理ツール) ☛ OS ごとの設定方法の差異などは構成管理ツールが吸収する 抽象化

Slide 25

Slide 25 text

Configuration レイヤーのツール(構成管理ツール) ☛ 正しく構成されていない場合だけ実行し、正しく構成されている 場合は 実行しないことで、何度実行しても同じ結果が得られる 冪等性

Slide 26

Slide 26 text

Configuration レイヤーのツール(構成管理ツール) ☛ ツールに任せておけば、システムはあるべき状態へ収束する 収束化

Slide 27

Slide 27 text

構成管理ツールを使用するメリット① シェルスクリプトの場合 ☛ OS ごとに異なるコマンドを、 スクリプト作成者が 使い分ける必要がある ☛ 冪等性を実現するため、 if 文などで現状をチェック する必要がある ☛コマンドの差異や冪等性を 考慮すると、スクリプトが 複雑になる ☛ あるべき状態の記述のみで よく、具体的なコマンドを 記述する必要がない ☛ ツールが冪等性を実現する ☛ コマンドの差異や冪等性を ツールに任せられるので、 コードがシンプルになり、 可読性が向上する 構成管理ツールの場合

Slide 28

Slide 28 text

構成管理ツールを使用するメリット② 仮想マシンテンプレートの場合 ☛ VM の新規作成がファイル のコピーだけで完了する ☛ 同じテンプレートからは 同じミドルウェア構成の システムしか作成できない ☛ 構成管理ツールを使わない 場合は、テンプレート自体を 手作業で作成する必要がある ☛新規作成だけでなく、 既存システムの変更も可能 ☛システムごとに個別に ミドルウェアの構成・設定を 変更できる ☛テストツールと連携し、 構成変更の結果を確認しつつ コードを作成できる 構成管理ツールの場合

Slide 29

Slide 29 text

ありがとうございました。 おわり