SlideShare a Scribd company logo
1
 Ansibleとは
 Ansibleの構成
 PJでの活用
› 様々な問題と解決(応急対処?)
 今後利用したい機能
› Version2.0/2.1/2.2
2
 Python製の構成管理ツール
› Infrastructure as Code
 名前の由来は’ハイニッシュ・ユニバース’に
登場する超光速通信技術
 エージェントレス
 RedHatが買収
3
 構成管理とは…
 システムを構成する物理/論理資源とその環境を、常に
正確に把握するための管理を指し、目的は次の2点
› 物理/論理資源の最新状況の把握
 物理資源とは・・・ハードウェア、ネットワーク、サーバー、PCなど
 論理資源とは・・・ライセンス、ソフトウェア、接続構成など
› 資源の有機的接続状況の把握
( 参照: http://www.arksystems.co.jp/closeupit/operationmgmnt/020101.html )
 構成管理ツールとは…
 システムのあるべき状態を記述し、差分があれば更新
する
› Infrastructure as Code
( 参照: http://www.arksystems.co.jp/closeupit/operationmgmnt/020101.html )
4
5
構成
実行コマンド
Inventory
PlayBook
Role
 対象の構成手順を記述するファイル
 YAML形式で記述
 どのホスト(hosts)に、どのユーザ(user)で
何 (roles,tasks)を実行するのか、を記述する
6
 対象ホストをまとめて記述したファイル
 グループでまとめて記述が可能
7
 処理の最小単位
 標準で提供しているものはpythonで記述
 600近くのmoduleが存在
› yum,service,file,user,make等々
8
これ
 Moduleの集合を定義したもの
› プログラムで言うとメソッド
 Roleごとに変数や使用するファイルを管理
できる
› デフォルトの構成がある
9
roles/ # roleの配置ディレクトリ
common/ # role名
files/ # ファイル
templates/ # templateファイル (jinja2というtemplate engine)
tasks/ # 実行する処理定義
handlers/ # handlerというnotifyとその処理の定義
vars/ # 変数ファイル
defaults/ # 変数のデフォルトファイル
meta/ # roleの依存関係定義
 Ver 1.9.4を使用
 以下の用途で利用
› DockerImageの作成
› 各サーバ構築
 DockerImageの取得
 MW,SWのインストール
 起動
10
1. 冪等性がない
2. 1 InventoryでPortのみ切り替えできない
3. 実行タイミングの衝突によるエラー
11
 冪等性
› ある操作を1回行っても複数回行っても結果が同
じであること
 Ansibleは基本、冪等性を保つように作られ
ている
› 例) directoryの作成→ディレクトリがなければ作る、
あれば何もしない
 shell/command module
› 任意のコマンドを実行できる
› 冪等性を保つのはユーザの責任
 例) command: mkdir A→ディレクトリがあるとエラー
12
 やりたかったこと
› Postgresqlインストールから起動までのroleを作成
› 設定を書き換えたらAnsible実行
› 新しい設定でpostgresqlが稼働する
 問題
› db init が2回目には失敗する
 対応
› db init済みか確認してなければ実行する、 とした
 register,when節を使用
 記述が長くなる
› moduleの作成をするとうまくできた気がする
 bashスクリプトではじめての自作Ansibleモジュール
 http://qiita.com/yunano/items/d58199eada0109d1e2fb
13
 1サーバ内に複数Dockerコンテナが共生
› 1つのInventoryファイルに1Server分記述したい
 [Container A]
x.x.x.x:10000
 [Container B]
x.x.x.x:20000
 [Container C]
x.x.x.x:30000
› portの切り替えができず、
いちばん上の定義が優先される
 ContainerBを指定してもContainerAに接続してし
まう
14
15
疎通確認コマンド。
Testグループを対象に指定。
Test2より先に定義すると
成功する
16
順番を変えると
Test2に定義している
10000ポートを
見に行ってしまう
 対応
› 仕方なく、各サーバ、各コンテナごとの
インベントリファイルを作成した
› (後述の)Docker Connection Pluginを使えば
うまく対応できそう
17
 起動時に同一DBに値を書き込む処理
 複数サーバ同時実行するとタイミングの衝
突によりエラーが発生
› 基本は全サーバ並列実行
対応
 Serialの利用により回避
› Serial実行
 指定台数分ずつ順次実行
18
 最新のVersionは2.1
 2.0,2.1と大幅な機能拡張があった
 2.2も近々でるらしい(10月予定?)
 利用したい機能が多数
 Version関係ないけど
› Ansible-lint
 lintとは、主にC言語のソースコードに対し、コンパイラより
詳細かつ厳密なチェックを行うプログラムである。
(引用元:https://ja.wikipedia.org/wiki/Lint)
19
 Task Blocks
› Playbookに対して例外処理の提供
› Try/except/finallyがモデル
 Docker Connection plugin
› コンテナID、コンテナ名で接続が可能
› DOCKER_HOST環境変数の指定が必要
› Connection: docker と記述して使用
20
 Windowsの正式サポート!
› PCセットアップの効率化
 Docker操作周り
› docker_service
› docker_container
› docker_image
› docker_login
21
 Vaultサポートの強化
› ファイル単位でなく変数単位の暗号化が可能
 Python3対応
› 2.2で完了ではないが徐々に進む
22
 Ansibleはエージェントレスの構成管理ツー
ル
 冪等性を保つように工夫して使うことが重
要
 新機能がたくさん出ているので新しい
Versionを使う
 Version2.2が楽しみ
23
 https://docs.ansible.com/
 http://qiita.com/t_nakayama0714/items/3a7ac08797b69a31533b
 http://tdoc.info/blog/2015/12/03/docker_connection_plugin.html
 http://qiita.com/makaaso/items/0375081c1600b312e8b0
 http://yteraoka.github.io/ansible-tutorial/
24

More Related Content

Similar to Ansible使ってみて

インフラエンジニア勉強会hbstudyについて
インフラエンジニア勉強会hbstudyについてインフラエンジニア勉強会hbstudyについて
インフラエンジニア勉強会hbstudyについて
Toshiaki Baba
 
システム運用 (インフラ編)
システム運用 (インフラ編)システム運用 (インフラ編)
システム運用 (インフラ編)Takashi Abe
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Shingo Kitayama
 
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
Dell TechCenter Japan
 
Kantara Initiative Seminar 2012 Panel Discussion
Kantara Initiative Seminar 2012 Panel DiscussionKantara Initiative Seminar 2012 Panel Discussion
Kantara Initiative Seminar 2012 Panel Discussion
Naohiro Fujie
 
ITフォーラム2024 AITCセッション(4)
ITフォーラム2024 AITCセッション(4)ITフォーラム2024 AITCセッション(4)
ITフォーラム2024 AITCセッション(4)
aitc_jp
 
ビッグデータ活用とサーバー基盤
ビッグデータ活用とサーバー基盤ビッグデータ活用とサーバー基盤
ビッグデータ活用とサーバー基盤
日本ヒューレット・パッカード株式会社
 
Androidについて
AndroidについてAndroidについて
Androidについてhayabusa333
 
SoftLayer上に構成するBluemixをご存知ですか
SoftLayer上に構成するBluemixをご存知ですかSoftLayer上に構成するBluemixをご存知ですか
SoftLayer上に構成するBluemixをご存知ですか
Hideaki Tokida
 
Deeplearning bank marketing dataset
Deeplearning bank marketing datasetDeeplearning bank marketing dataset
Deeplearning bank marketing dataset
TellSun
 
IT投資のオペレーション・マネジメントの価値
IT投資のオペレーション・マネジメントの価値IT投資のオペレーション・マネジメントの価値
IT投資のオペレーション・マネジメントの価値
Tetsu Kawata
 
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
Itoshi Nikaido
 
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知るAI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
日本ヒューレット・パッカード株式会社
 
オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用Ruo Ando
 
オープンソース統合運用管理ツール『Hinemos』 --- その利便性及びインシデント管理について ---
オープンソース統合運用管理ツール『Hinemos』  --- その利便性及びインシデント管理について ---オープンソース統合運用管理ツール『Hinemos』  --- その利便性及びインシデント管理について ---
オープンソース統合運用管理ツール『Hinemos』 --- その利便性及びインシデント管理について ---Open Source Software Association of Japan
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
Azure アプリケーション アーキテクチャ ガイド 紹介
Azure アプリケーション アーキテクチャ ガイド 紹介Azure アプリケーション アーキテクチャ ガイド 紹介
Azure アプリケーション アーキテクチャ ガイド 紹介
Kazuyuki Nomura
 
将来必要となるエンジニアのスキルについて考える Ver3
将来必要となるエンジニアのスキルについて考える Ver3将来必要となるエンジニアのスキルについて考える Ver3
将来必要となるエンジニアのスキルについて考える Ver3Hiroshi Oyamada
 
「モダンな」可視化アプリケーション開発とはどのようなものか?
「モダンな」可視化アプリケーション開発とはどのようなものか?「モダンな」可視化アプリケーション開発とはどのようなものか?
「モダンな」可視化アプリケーション開発とはどのようなものか?
Keiichiro Ono
 
Scis2015 ruo ando_2015-01-20-01
Scis2015 ruo ando_2015-01-20-01Scis2015 ruo ando_2015-01-20-01
Scis2015 ruo ando_2015-01-20-01
Ruo Ando
 

Similar to Ansible使ってみて (20)

インフラエンジニア勉強会hbstudyについて
インフラエンジニア勉強会hbstudyについてインフラエンジニア勉強会hbstudyについて
インフラエンジニア勉強会hbstudyについて
 
システム運用 (インフラ編)
システム運用 (インフラ編)システム運用 (インフラ編)
システム運用 (インフラ編)
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
 
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
 
Kantara Initiative Seminar 2012 Panel Discussion
Kantara Initiative Seminar 2012 Panel DiscussionKantara Initiative Seminar 2012 Panel Discussion
Kantara Initiative Seminar 2012 Panel Discussion
 
ITフォーラム2024 AITCセッション(4)
ITフォーラム2024 AITCセッション(4)ITフォーラム2024 AITCセッション(4)
ITフォーラム2024 AITCセッション(4)
 
ビッグデータ活用とサーバー基盤
ビッグデータ活用とサーバー基盤ビッグデータ活用とサーバー基盤
ビッグデータ活用とサーバー基盤
 
Androidについて
AndroidについてAndroidについて
Androidについて
 
SoftLayer上に構成するBluemixをご存知ですか
SoftLayer上に構成するBluemixをご存知ですかSoftLayer上に構成するBluemixをご存知ですか
SoftLayer上に構成するBluemixをご存知ですか
 
Deeplearning bank marketing dataset
Deeplearning bank marketing datasetDeeplearning bank marketing dataset
Deeplearning bank marketing dataset
 
IT投資のオペレーション・マネジメントの価値
IT投資のオペレーション・マネジメントの価値IT投資のオペレーション・マネジメントの価値
IT投資のオペレーション・マネジメントの価値
 
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
 
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知るAI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
 
オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用
 
オープンソース統合運用管理ツール『Hinemos』 --- その利便性及びインシデント管理について ---
オープンソース統合運用管理ツール『Hinemos』  --- その利便性及びインシデント管理について ---オープンソース統合運用管理ツール『Hinemos』  --- その利便性及びインシデント管理について ---
オープンソース統合運用管理ツール『Hinemos』 --- その利便性及びインシデント管理について ---
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
Azure アプリケーション アーキテクチャ ガイド 紹介
Azure アプリケーション アーキテクチャ ガイド 紹介Azure アプリケーション アーキテクチャ ガイド 紹介
Azure アプリケーション アーキテクチャ ガイド 紹介
 
将来必要となるエンジニアのスキルについて考える Ver3
将来必要となるエンジニアのスキルについて考える Ver3将来必要となるエンジニアのスキルについて考える Ver3
将来必要となるエンジニアのスキルについて考える Ver3
 
「モダンな」可視化アプリケーション開発とはどのようなものか?
「モダンな」可視化アプリケーション開発とはどのようなものか?「モダンな」可視化アプリケーション開発とはどのようなものか?
「モダンな」可視化アプリケーション開発とはどのようなものか?
 
Scis2015 ruo ando_2015-01-20-01
Scis2015 ruo ando_2015-01-20-01Scis2015 ruo ando_2015-01-20-01
Scis2015 ruo ando_2015-01-20-01
 

Ansible使ってみて