SlideShare a Scribd company logo
初めてのANSIBLE
社内勉強会2017.4.28 @kkkw
AGENDA
AnsibleとはAnsibleことはじめよくあるディレクトリ構成Ansible Galaxy
ちょっとだけ中級編
ANSIBLEとは構成管理ツール
デプロイヤー
プロビジョナー
会社の名前
できることshellでできること
コマンドラインansible
ansible-playbook
ansible-galaxy
ansible-doc
ansible-vault
ansible-pull
コマンドイメージ
特徴エージェントレス
大量サーバーも捌ける
冪等性を担保しやすい
パッケージ管理がある
シンプル(Chefに比べるとだけど)
VS CHEF
QIITAの投稿数chef: 893(781)
ansible: 1279(879)
ANSIBLEことはじめ
ドキュメント本家のドキュメント
ドキュメントを使う
基本的にはサイトでいい
けど、こっちのほうが更新が早い
用語インベントリ
タスク
プレイブック
ロール
モジュール
ハンドラー
イメージ図
インベントリ操作対象になるサーバーのこと
操作する方はコントロールマシン
インベントリ
タスクサーバーに対して実行する操作
ファイル作るとか
何かをインストールするとか
プレイブックタスクをまとめるファイル
yaml形式で書く
ロールプレイブックよりも小さい単位で、
タスクをまとめる概念
後述するパッケージ管理の管理単位でもある
モジュールタスクを実際に行うための関数
1034(598)個
deprecatedも含まれるからもう少し減る
自作もできる
モジュールその2
file: ファイル/ディレクトリ操作
stat: パスの存在確認など
copy: そのまま
get_url: curlの代わりに
service:
apt,yum: パッケージ管理
ec2: aws ec2用
s3_sync: s3用
モジュールその3
debug: デバッグメッセージ
shell,commnd: コマンドを発行
template: 設定ファイルなどに
synchronize: rsync
osx_default: OSXの設定変更
ハンドラータスクの中でnotifyで通知すると、
そのタスクを実行してくれる。
サービスの再起動とかに使う。
通知が何回あっても
ハンドラーは一度だけ実行される。
イメージ図(再)
よくあるディレクトリ構成
Ansibleのドキュメントに
がある。ベストプラクティス
ある程度分割した上で
最小構成のplaybookを
作るとしたらこんな感じ
.
|-- hosts //
|-- playbook.yml
`-- roles // 格納
|-- directories
| `-- tasks
| `-- main.yml
|-- foo
|-- bar
`-- buz
ROLE内のディレクトリ構成
慣例としてmain.ymlに記載していく。
main.ymlを分割することもできる。
.
|-- defaults
| `-- main.yml
|-- files
|-- handlers
| `-- main.yml
|-- meta
| `-- main.yml
|-- tasks
| `-- main.yml
|-- templates
|-- tests
| |-- inventory
| `-- test.yml
`-- vars
`-- main.yml
ディレクトリの説明
DEFAULTS
変数のデフォルト値を定義していく。
---
# defaults file for ansible-role-composer
composer_install_dir: /usr/local/bin
FILES
各サーバーにコピーするだけで
いいファイルを配置する。
TASKS
メインとなるディレクトリ。
ここにタスクを書いていく。
最もFATに
なりやすいファイル(ディレクトリ)。
中身はこんな感じ
---
- name: Enable nginx repo.
template:
src: nginx.repo.j2
dest: /etc/yum.repos.d/nginx.repo
owner: root
group: root
mode: 0644
- name: Ensure nginx is installed.
yum:
name: "{{ nginx_package_name }}"
state: installed
enablerepo: nginx
TEMPLATES
設定ファイルの雛形を置く
jinja2形式で書いていく
HANDLERS
ハンドラーのタスクを書く。
ハンドラーと言っても書き方はタスクと同じ
---
- name: restart nginx
service: name=nginx state=restarted
META
Ansible Galaxy(後述)に
公開する際に必要な項目を書きます。
ANSIBLE GALAXY
ANSIBLE GALAXY
パッケージ管理ツール
ロールの単位で管理する
Ansible Galaxyに上げなくても、パッケージ管理
そのものはできる
ちょっとだけ中級編
DYNAMIC INVENTRY
Q.アプリケーションで、hostの管理をしています。
インベントリファイルは
別途管理する必要がありますか?
=> 2重管理になりますか?
DYNAMIC INVENTRY
A. いいえ。Dynamic Inventryが使えます。
いいかどうかは別にして、
既存のソースをパースしてAnsibleに引き渡すこと
ができます。
DYNAMIC INVENTRY
下記の条件を満たすバッチを用意する
jsonで返す
2つのオプション取れる

More Related Content

What's hot

Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Hidetoshi Hirokawa
 
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
京大 マイコンクラブ
 
負荷分散だけじゃないELBのメリット
負荷分散だけじゃないELBのメリット負荷分散だけじゃないELBのメリット
負荷分散だけじゃないELBのメリット
Takashi Toyosaki
 
ECSの大型アップデートが来たよ!
ECSの大型アップデートが来たよ!ECSの大型アップデートが来たよ!
ECSの大型アップデートが来たよ!
淳 千葉
 
5分でできる ebfly
5分でできる ebfly5分でできる ebfly
5分でできる ebfly
Kazuyuki Honda
 
SQLによるDynamoDBの操作
SQLによるDynamoDBの操作SQLによるDynamoDBの操作
SQLによるDynamoDBの操作
Sugawara Genki
 
Elastic beanstalk と Docker と Play
Elastic beanstalk と Docker と PlayElastic beanstalk と Docker と Play
Elastic beanstalk と Docker と PlayTakashi Kawachi
 
Ansible tower 構築方法と使い方
Ansible tower 構築方法と使い方Ansible tower 構築方法と使い方
Ansible tower 構築方法と使い方
Hiroshi Okano
 
AWS Elastic Beanstalk のススメ
AWS Elastic Beanstalk のススメAWS Elastic Beanstalk のススメ
AWS Elastic Beanstalk のススメTaiji INOUE
 
IaaSではじめよう!クラウドコンピューティング
IaaSではじめよう!クラウドコンピューティングIaaSではじめよう!クラウドコンピューティング
IaaSではじめよう!クラウドコンピューティングhideaki yanase
 
Azure Load Testingを試してみた
Azure Load Testingを試してみたAzure Load Testingを試してみた
Azure Load Testingを試してみた
Hiroyuki Mori
 
リーダブルコード勉強会 in 筑波大のアイスブレイク
リーダブルコード勉強会 in 筑波大のアイスブレイクリーダブルコード勉強会 in 筑波大のアイスブレイク
リーダブルコード勉強会 in 筑波大のアイスブレイク
Kouhei Sutou
 
Azure で Ansible Tower と AWX(OSS版)に触れてみよう #hbstudy
Azure で Ansible Tower と AWX(OSS版)に触れてみよう #hbstudyAzure で Ansible Tower と AWX(OSS版)に触れてみよう #hbstudy
Azure で Ansible Tower と AWX(OSS版)に触れてみよう #hbstudy
Kazumi IWANAGA
 
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacTakeshi Komiya
 
AWS+でスケールアウト&スケールアップ
AWS+でスケールアウト&スケールアップAWS+でスケールアウト&スケールアップ
AWS+でスケールアウト&スケールアップHiroyasu Suzuki
 
re:Growth athena
re:Growth athenare:Growth athena
re:Growth athena
淳 千葉
 
aerospike on aws
aerospike on awsaerospike on aws
aerospike on aws
Makoto Uehara
 
AWSエンジニアが、 経理部門と仲良くなれるTips
AWSエンジニアが、 経理部門と仲良くなれるTipsAWSエンジニアが、 経理部門と仲良くなれるTips
AWSエンジニアが、 経理部門と仲良くなれるTips
Tetsuya Ishibashi
 
Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話
Yu Komiya
 

What's hot (20)

Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
 
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
 
負荷分散だけじゃないELBのメリット
負荷分散だけじゃないELBのメリット負荷分散だけじゃないELBのメリット
負荷分散だけじゃないELBのメリット
 
ECSの大型アップデートが来たよ!
ECSの大型アップデートが来たよ!ECSの大型アップデートが来たよ!
ECSの大型アップデートが来たよ!
 
5分でできる ebfly
5分でできる ebfly5分でできる ebfly
5分でできる ebfly
 
SQLによるDynamoDBの操作
SQLによるDynamoDBの操作SQLによるDynamoDBの操作
SQLによるDynamoDBの操作
 
Elastic beanstalk と Docker と Play
Elastic beanstalk と Docker と PlayElastic beanstalk と Docker と Play
Elastic beanstalk と Docker と Play
 
Ansible tower 構築方法と使い方
Ansible tower 構築方法と使い方Ansible tower 構築方法と使い方
Ansible tower 構築方法と使い方
 
AWS Elastic Beanstalk のススメ
AWS Elastic Beanstalk のススメAWS Elastic Beanstalk のススメ
AWS Elastic Beanstalk のススメ
 
AWS as code_and_test
AWS as code_and_testAWS as code_and_test
AWS as code_and_test
 
IaaSではじめよう!クラウドコンピューティング
IaaSではじめよう!クラウドコンピューティングIaaSではじめよう!クラウドコンピューティング
IaaSではじめよう!クラウドコンピューティング
 
Azure Load Testingを試してみた
Azure Load Testingを試してみたAzure Load Testingを試してみた
Azure Load Testingを試してみた
 
リーダブルコード勉強会 in 筑波大のアイスブレイク
リーダブルコード勉強会 in 筑波大のアイスブレイクリーダブルコード勉強会 in 筑波大のアイスブレイク
リーダブルコード勉強会 in 筑波大のアイスブレイク
 
Azure で Ansible Tower と AWX(OSS版)に触れてみよう #hbstudy
Azure で Ansible Tower と AWX(OSS版)に触れてみよう #hbstudyAzure で Ansible Tower と AWX(OSS版)に触れてみよう #hbstudy
Azure で Ansible Tower と AWX(OSS版)に触れてみよう #hbstudy
 
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
 
AWS+でスケールアウト&スケールアップ
AWS+でスケールアウト&スケールアップAWS+でスケールアウト&スケールアップ
AWS+でスケールアウト&スケールアップ
 
re:Growth athena
re:Growth athenare:Growth athena
re:Growth athena
 
aerospike on aws
aerospike on awsaerospike on aws
aerospike on aws
 
AWSエンジニアが、 経理部門と仲良くなれるTips
AWSエンジニアが、 経理部門と仲良くなれるTipsAWSエンジニアが、 経理部門と仲良くなれるTips
AWSエンジニアが、 経理部門と仲良くなれるTips
 
Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話
 

Similar to 初めてのAnsible

Ansible使いたい
Ansible使いたいAnsible使いたい
Ansible使いたい
fourside
 
AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 - AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 - SORACOM, INC
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio
 
実録!AnsiblevsChef-solo
実録!AnsiblevsChef-solo実録!AnsiblevsChef-solo
実録!AnsiblevsChef-solo
Recruit Technologies
 
20200708 bydstudy miyazaki
20200708 bydstudy miyazaki20200708 bydstudy miyazaki
20200708 bydstudy miyazaki
beyond Co., Ltd.
 
「Ansible on Azure入門」資料
「Ansible on Azure入門」資料「Ansible on Azure入門」資料
「Ansible on Azure入門」資料
Hidetoshi Hirokawa
 
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
真吾 吉田
 
ElasticBeanstalkでのRailsアプリ運用
ElasticBeanstalkでのRailsアプリ運用ElasticBeanstalkでのRailsアプリ運用
ElasticBeanstalkでのRailsアプリ運用
Masaya Konishi
 
AWS ESC + Ansibleで お手軽 Blue-Green Deployment
AWS ESC + Ansibleで お手軽 Blue-Green DeploymentAWS ESC + Ansibleで お手軽 Blue-Green Deployment
AWS ESC + Ansibleで お手軽 Blue-Green Deployment
Kentaro NOMURA
 
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
Amazon Web Services Japan
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
Taro Hirose
 
AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -SORACOM, INC
 
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024
Hideki Saito
 
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれから
Takeshi Kuramochi
 
[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編
[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編
[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編
Amazon Web Services Japan
 
サーバ構築を自動化する 〜Ansible〜
サーバ構築を自動化する 〜Ansible〜サーバ構築を自動化する 〜Ansible〜
サーバ構築を自動化する 〜Ansible〜
Yui Ito
 
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
Amazon Web Services Japan
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
infinite_loop
 

Similar to 初めてのAnsible (20)

Ansible使いたい
Ansible使いたいAnsible使いたい
Ansible使いたい
 
AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 - AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 -
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
 
実録!AnsiblevsChef-solo
実録!AnsiblevsChef-solo実録!AnsiblevsChef-solo
実録!AnsiblevsChef-solo
 
20200708 bydstudy miyazaki
20200708 bydstudy miyazaki20200708 bydstudy miyazaki
20200708 bydstudy miyazaki
 
「Ansible on Azure入門」資料
「Ansible on Azure入門」資料「Ansible on Azure入門」資料
「Ansible on Azure入門」資料
 
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
 
RをAWSで使おう
RをAWSで使おうRをAWSで使おう
RをAWSで使おう
 
ElasticBeanstalkでのRailsアプリ運用
ElasticBeanstalkでのRailsアプリ運用ElasticBeanstalkでのRailsアプリ運用
ElasticBeanstalkでのRailsアプリ運用
 
AWS ESC + Ansibleで お手軽 Blue-Green Deployment
AWS ESC + Ansibleで お手軽 Blue-Green DeploymentAWS ESC + Ansibleで お手軽 Blue-Green Deployment
AWS ESC + Ansibleで お手軽 Blue-Green Deployment
 
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
 
Elastic beanstalk
Elastic beanstalkElastic beanstalk
Elastic beanstalk
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -
 
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024
 
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれから
 
[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編
[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編
[AWS Summit 2012] クラウドデザインパターン#8 CDP アンチパターン編
 
サーバ構築を自動化する 〜Ansible〜
サーバ構築を自動化する 〜Ansible〜サーバ構築を自動化する 〜Ansible〜
サーバ構築を自動化する 〜Ansible〜
 
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 

初めてのAnsible