狠狠撸

狠狠撸Share a Scribd company logo
第2回
ansible勉強会
@carotene4035
副題
順番に増やして覚えるansible
前回のハイライト
1つのサーバに
少しのタスク(nginx導入)を
実行したよ
※一言にまとめてしまいすみません。。
前回から
いろいろ増やします
今日やること
? 复数のサーバに少しのタスク
? 1つのサーバにたくさんのタスク
? 复数のサーバにたくさんのタスク☆☆☆
今日やること
ちょっとずつ増やしていくよ
今日やること
構成に必要な情報(おさらい)
? どこに
? なにを
? どのように
ansible-playbook -i [inventory] [playbook]
構成に必要な情報(おさらい)
ansible playbookの実行コマンド
ansible-playbook -i [inventory] [playbook]
どこに なにを
どのように
構成に必要な情報(おさらい)
ansible playbookの実行コマンド
複数のサーバに
少しのタスク
[サーバ]
ロードバランサ
Appサーバ1
Appサーバ2
DBサーバ
复数のサーバに少しのタスク
[タスク]
サーバ名を定義(するだけ)
复数のサーバに少しのタスク
「どこに」を指定する
InventoryFileの書き方を確認
复数のサーバに少しのタスク
复数のサーバに少しのタスク
复数のサーバに少しのタスク
InventoryFileがかけたので、疎通確認。
すべてのホストに対してpingを送信。
复数のサーバに少しのタスク
$ ansible all -i hosts -m ping
复数のサーバに少しのタスク
复数のサーバに少しのタスク
たのしい!
?('ω'? )三?('ω')?三( ?'ω')?
今回実行するplaybook
site.yml
复数のサーバに少しのタスク
复数のサーバに少しのタスク
実行する
$ ansible-playbook -i hosts site.yml
`
复数のサーバに少しのタスク
复数のサーバに少しのタスク
复数のサーバに少しのタスク
?('ω'? )三?('ω')?三( ?'ω')?
复数のサーバに少しのタスク
余談
复数のサーバに少しのタスク
macが火を吹きました
复数のサーバに少しのタスク
复数のサーバに少しのタスク
复数のサーバに少しのタスク
ansible_cli app1 app2 load db
复数のサーバに少しのタスク
ansible_cli app1 app2 load db
复数のサーバに少しのタスク
google検索?過積載
复数のサーバに少しのタスク
ansible_cli app1 app2 load db
????…????…
复数のサーバに少しのタスク
docker使お(ry
1つのサーバに
たくさんのタスク
[サーバ]
Appサーバ1
1つのサーバにたくさんのタスク
host名書き換え
timezone書き換え
libselinux-python導入
ntp導入
言語設定
グループの追加
sudoユーザ追加
ROユーザ追加
SFTPユーザ追加
1つのサーバにたくさんのタスク
composer導入
git導入
vim導入
remiリポジトリ追加
epelリポジトリ追加
php7.0 install
phpモジュールを11個ほど追加
php.iniファイルを設置
php-fpm.iniの設定
[タスク]
とりあえずplaybook(site.yml)を
書いてみる
1つのサーバにたくさんのタスク
1つのサーバにたくさんのタスク
もうちょっとだけ
続くんじゃ
1つのサーバにたくさんのタスク
もうちょっとだk
▂▅▇█▓??( ω')??▓█▇▅▂
うわあああああああああああ
1つのサーバにたくさんのタスク
長い。。
ごちゃごちゃして見にくい。。
1つのサーバにたくさんのタスク
そこでロール化
1つのサーバにたくさんのタスク
Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方
1つのサーバにたくさんのタスク
before/after
1つのサーバにたくさんのタスク
Ansible roleとinventoryの書き方
1つのサーバにたくさんのタスク
スッキリ
1つのサーバにたくさんのタスク
実際のディレクトリはこんな感じ
1つのサーバにたくさんのタスク
site.yml roles
ロール化の恩恵は他にもある
1つのサーバにたくさんのタスク
playbookを書くのが楽になる
1つのサーバにたくさんのタスク
Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方
ロールディレクトリの中を
みてみます
(中をみるとはいってない)
1つのサーバにたくさんのタスク
1つのサーバにたくさんのタスク
templates:
設定ファイル系を置く場所
1つのサーバにたくさんのタスク
templates:
設定ファイル系を置く場所
jinga2というファイル形式で、
?{{ }}でくくった部分に変数が入る
1つのサーバにたくさんのタスク
vars:
変数を置く場所
defaults:
?変数を置く場所
1つのサーバにたくさんのタスク
vars:
変数を置く場所
defaults:
?変数を置く場所
1つのサーバにたくさんのタスク
?les:
?ホストに上げるファイルを置いておく場所
?(例:githubとの通信用秘密 など)
1つのサーバにたくさんのタスク
tasks:
タスクが書かれているファイルを置く場所
1つのサーバにたくさんのタスク
tasks:
タスクが書かれているファイルを置く場所
1つのサーバにたくさんのタスク
tests:
ロール単体でテストをするときに使用する
?テストを適用するホストを指定するための
inventoryファイルをおく
1つのサーバにたくさんのタスク
handlers:
?リロードや再起動系の処理をおく
?(遅延実行系というらしい。。
??教えて誰か)
?taskと同じように書いて、
?tasks/main.ymlにてnotifyモジュールを
使ってタスク呼び出しをする
1つのサーバにたくさんのタスク
meta:
roleの依存関係を記述する
?つまり、ロールの中から他のロールを読み
込む処理がかける
---
dependencies:
- { role: common, some_parameter: 3 }
- { role: apache, apache_port: 80 }
1つのサーバにたくさんのタスク
meta:
読み込まれたロールは、
読み込んでいるロールより先に実行される。
同じロールが以前に実行されていた場合はそ
のロールは実行されない。
ansible-galaxy init ?init-path= roles [role]
roleの雛形を生成するコマンド
1つのサーバにたくさんのタスク
??????自動でこれができます
1つのサーバにたくさんのタスク
ε-(;-ω-`A) ??…
複数のサーバに
たくさんのタスク
复数のサーバにたくさんのタスク
[サーバ]
ロードバランサ
Appサーバ1
Appサーバ2
DBサーバ
复数のサーバにたくさんのタスク
InventoryFile
复数のサーバにたくさんのタスク
playbook roleに分けて、
site.ymlにグループごとにrole
を記述するだけ
复数のサーバにたくさんのタスク
playbook
复数のサーバにたくさんのタスク
复数のサーバにたくさんのタスク
ちょっとまった
复数のサーバにたくさんのタスク
ホスト固有の変数はどうするの?
复数のサーバにたくさんのタスク
host_varsという
ディレクトリを用意する
复数のサーバにたくさんのタスク
?インベントリで指定したホスト名と
?同じ名前のファイルを用意することで、
そのホストに対してタスクが実行される際、
?自動で読み込まれる
复数のサーバにたくさんのタスク
?中はこんな感じ。
?ホスト固有の設定値等を羅列する。
?
(環境変数として管理したほうが良い。
?あくまで例)
复数のサーバにたくさんのタスク
グループ固有の変数はどうするの?
复数のサーバにたくさんのタスク
group_varsという
ディレクトリを用意する
复数のサーバにたくさんのタスク
?インベントリで指定したグループ名と
?同じ名前のファイルを用意することで、
そのグループに対してタスクが実行される際、
?自動で読み込まれる
まとめ
? 复数のサーバに少しのタスク
? 1つのサーバにたくさんのタスク
? 复数のサーバにたくさんのタスク☆☆☆
まとめ
? 复数のサーバに少しのタスク
? InventoryFileの書き方を覚えれば大丈夫
まとめ
? 1つのサーバにたくさんのタスク
? roleのわけ方を覚えれば大丈夫
まとめ
? 复数のサーバにたくさんのタスク
? 変数の読み込み方を覚えれば大丈夫
まとめ
? roleを書けば書くほど、playbookを書くの
が楽になる
まとめ
? Ansibleたのしいよね?という話でした
議題
? Ansible playbookの管理の仕方
? リポジトリはプロジェクトごと?
? それともぜんぶいっしょにしちゃう?
? 本番環境、テスト環境、開発環境はどうわけて書く?
など話し合えたら嬉しく思います。
Ad

Recommended

Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
Sho A
?
痴补驳谤补苍迟环境の础苍蝉颈产濒别を速くしたい
痴补驳谤补苍迟环境の础苍蝉颈产濒别を速くしたい
Kazuhiro Oinuma
?
Deep Dive into Modules
Deep Dive into Modules
Hideki Saito
?
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれから
Takeshi Kuramochi
?
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Hidetoshi Hirokawa
?
Ansible handson ood2016
Ansible handson ood2016
Hideki Saito
?
颁丑别蹿と笔耻辫辫别迟の比较
颁丑别蹿と笔耻辫辫别迟の比较
Sugawara Genki
?
Okinawa Open Days 2015 Handson - Ansible
Okinawa Open Days 2015 Handson - Ansible
Hideki Saito
?
Ansible handson
Ansible handson
Hideki Saito
?
Ansible tower 構築方法と使い方
Ansible tower 構築方法と使い方
Hiroshi Okano
?
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
Takeshi Kuramochi
?
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
Taro Hirose
?
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
npsg
?
笔耻辫辫别迟のススメ
笔耻辫辫别迟のススメ
Gosuke Miyashita
?
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada
?
ヤギにサーバーを管理してもらう话
ヤギにサーバーを管理してもらう话
Masaki Kobayashi
?
What is an Ansible?
What is an Ansible?
Shunsaku Kudo
?
勉強会0614 vagrant
勉強会0614 vagrant
Yu Ito
?
Ansible quickstart
Ansible quickstart
Hideki Saito
?
顿辞肠办别谤+颁辞谤别翱厂+骋颁贰で自动スケール分散レイトレ
顿辞肠办别谤+颁辞谤别翱厂+骋颁贰で自动スケール分散レイトレ
peryaudo
?
痴补驳谤补苍迟+础苍蝉颈产濒别で検証环境を简単构筑
痴补驳谤补苍迟+础苍蝉颈产濒别で検証环境を简単构筑
Ken Sawada
?
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
Takeshi Komiya
?
Osdt2015 saito
Osdt2015 saito
Hideki Saito
?
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
?
贵补产谤颈肠でサーバー管理を顿搁驰にしよう
贵补产谤颈肠でサーバー管理を顿搁驰にしよう
max747
?
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
?
础苍蝉颈产濒别ハンズオン勉强会
础苍蝉颈产濒别ハンズオン勉强会
Takahisa Iwamoto
?
础苍蝉颈产濒别て?始めるインフラ构筑自动化
础苍蝉颈产濒别て?始めるインフラ构筑自动化
dcubeio
?

More Related Content

What's hot (20)

Ansible handson
Ansible handson
Hideki Saito
?
Ansible tower 構築方法と使い方
Ansible tower 構築方法と使い方
Hiroshi Okano
?
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
Takeshi Kuramochi
?
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
Taro Hirose
?
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
npsg
?
笔耻辫辫别迟のススメ
笔耻辫辫别迟のススメ
Gosuke Miyashita
?
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada
?
ヤギにサーバーを管理してもらう话
ヤギにサーバーを管理してもらう话
Masaki Kobayashi
?
What is an Ansible?
What is an Ansible?
Shunsaku Kudo
?
勉強会0614 vagrant
勉強会0614 vagrant
Yu Ito
?
Ansible quickstart
Ansible quickstart
Hideki Saito
?
顿辞肠办别谤+颁辞谤别翱厂+骋颁贰で自动スケール分散レイトレ
顿辞肠办别谤+颁辞谤别翱厂+骋颁贰で自动スケール分散レイトレ
peryaudo
?
痴补驳谤补苍迟+础苍蝉颈产濒别で検証环境を简単构筑
痴补驳谤补苍迟+础苍蝉颈产濒别で検証环境を简単构筑
Ken Sawada
?
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
Takeshi Komiya
?
Osdt2015 saito
Osdt2015 saito
Hideki Saito
?
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
?
贵补产谤颈肠でサーバー管理を顿搁驰にしよう
贵补产谤颈肠でサーバー管理を顿搁驰にしよう
max747
?
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
?
Ansible tower 構築方法と使い方
Ansible tower 構築方法と使い方
Hiroshi Okano
?
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
Takeshi Kuramochi
?
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
Taro Hirose
?
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
npsg
?
笔耻辫辫别迟のススメ
笔耻辫辫别迟のススメ
Gosuke Miyashita
?
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada
?
ヤギにサーバーを管理してもらう话
ヤギにサーバーを管理してもらう话
Masaki Kobayashi
?
勉強会0614 vagrant
勉強会0614 vagrant
Yu Ito
?
顿辞肠办别谤+颁辞谤别翱厂+骋颁贰で自动スケール分散レイトレ
顿辞肠办别谤+颁辞谤别翱厂+骋颁贰で自动スケール分散レイトレ
peryaudo
?
痴补驳谤补苍迟+础苍蝉颈产濒别で検証环境を简単构筑
痴补驳谤补苍迟+础苍蝉颈产濒别で検証环境を简単构筑
Ken Sawada
?
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
Takeshi Komiya
?
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
?
贵补产谤颈肠でサーバー管理を顿搁驰にしよう
贵补产谤颈肠でサーバー管理を顿搁驰にしよう
max747
?
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
?

Similar to Ansible roleとinventoryの書き方 (16)

础苍蝉颈产濒别ハンズオン勉强会
础苍蝉颈产濒别ハンズオン勉强会
Takahisa Iwamoto
?
础苍蝉颈产濒别て?始めるインフラ构筑自动化
础苍蝉颈产濒别て?始めるインフラ构筑自动化
dcubeio
?
础苍蝉颈产濒别ではじめるサーバー?ネットワークの自动化(2018/08/22)
础苍蝉颈产濒别ではじめるサーバー?ネットワークの自动化(2018/08/22)
akira6592
?
础苍蝉颈产濒别入门 20151226
础苍蝉颈产濒别入门 20151226
Kunihiro Morita
?
础苍蝉颈产濒别を失败しながら学ぶ その1
础苍蝉颈产濒别を失败しながら学ぶ その1
Kazuyuki Ichikawa
?
入门础苍蝉颈产濒别(未発表箇所)
入门础苍蝉颈产濒别(未発表箇所)
Taku SHIMIZU
?
受託开発て?础苍蝉颈产濒别を导入した话
受託开発て?础苍蝉颈产濒别を导入した话
Yuto Matsukubo
?
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
Masashi Shinbara
?
础苍蝉颈产濒别入门...?
础苍蝉颈产濒别入门...?
shirou wakayama
?
サーハ?構築を自動化する ?Ansible?
サーハ?構築を自動化する ?Ansible?
Yui Ito
?
础苍蝉颈产濒别ではじめるサーバー?ネットワークの自动化(2018/07/05)
础苍蝉颈产濒别ではじめるサーバー?ネットワークの自动化(2018/07/05)
akira6592
?
翱厂厂を活用した滨补颁の実现
翱厂厂を活用した滨补颁の実现
Trainocate Japan, Ltd.
?
础苍蝉颈产濒别ではじめるサーバー?ネットワークの自动化(2019/04版)
础苍蝉颈产濒别ではじめるサーバー?ネットワークの自动化(2019/04版)
akira6592
?
Ansible 20181031
Ansible 20181031
doaaabcs
?
础苍蝉颈产濒别勉强会资料
础苍蝉颈产濒别勉强会资料
Makoto Oya
?
Ansible モジュール 作成?配布?貢献
Ansible モジュール 作成?配布?貢献
yaegashi
?
础苍蝉颈产濒别ハンズオン勉强会
础苍蝉颈产濒别ハンズオン勉强会
Takahisa Iwamoto
?
础苍蝉颈产濒别て?始めるインフラ构筑自动化
础苍蝉颈产濒别て?始めるインフラ构筑自动化
dcubeio
?
础苍蝉颈产濒别ではじめるサーバー?ネットワークの自动化(2018/08/22)
础苍蝉颈产濒别ではじめるサーバー?ネットワークの自动化(2018/08/22)
akira6592
?
础苍蝉颈产濒别入门 20151226
础苍蝉颈产濒别入门 20151226
Kunihiro Morita
?
础苍蝉颈产濒别を失败しながら学ぶ その1
础苍蝉颈产濒别を失败しながら学ぶ その1
Kazuyuki Ichikawa
?
入门础苍蝉颈产濒别(未発表箇所)
入门础苍蝉颈产濒别(未発表箇所)
Taku SHIMIZU
?
受託开発て?础苍蝉颈产濒别を导入した话
受託开発て?础苍蝉颈产濒别を导入した话
Yuto Matsukubo
?
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
Masashi Shinbara
?
础苍蝉颈产濒别入门...?
础苍蝉颈产濒别入门...?
shirou wakayama
?
サーハ?構築を自動化する ?Ansible?
サーハ?構築を自動化する ?Ansible?
Yui Ito
?
础苍蝉颈产濒别ではじめるサーバー?ネットワークの自动化(2018/07/05)
础苍蝉颈产濒别ではじめるサーバー?ネットワークの自动化(2018/07/05)
akira6592
?
翱厂厂を活用した滨补颁の実现
翱厂厂を活用した滨补颁の実现
Trainocate Japan, Ltd.
?
础苍蝉颈产濒别ではじめるサーバー?ネットワークの自动化(2019/04版)
础苍蝉颈产濒别ではじめるサーバー?ネットワークの自动化(2019/04版)
akira6592
?
Ansible 20181031
Ansible 20181031
doaaabcs
?
础苍蝉颈产濒别勉强会资料
础苍蝉颈产濒别勉强会资料
Makoto Oya
?
Ansible モジュール 作成?配布?貢献
Ansible モジュール 作成?配布?貢献
yaegashi
?
Ad

More from Kamimura Taichi (11)

Vuejs meetup
Vuejs meetup
Kamimura Taichi
?
ruby 関数化のメリット
ruby 関数化のメリット
Kamimura Taichi
?
补箩补虫ってなんなの
补箩补虫ってなんなの
Kamimura Taichi
?
わからないことか?わからないときにどうしたらよいのか。
わからないことか?わからないときにどうしたらよいのか。
Kamimura Taichi
?
Session管理とRailsのcookie store
Session管理とRailsのcookie store
Kamimura Taichi
?
git addの解説
git addの解説
Kamimura Taichi
?
Ruby - オブジェクト指向入門
Ruby - オブジェクト指向入門
Kamimura Taichi
?
惫颈尘入门
惫颈尘入门
Kamimura Taichi
?
础苍蝉颈产濒别超入门
础苍蝉颈产濒别超入门
Kamimura Taichi
?
What is git commit? - git commitって何なの?
What is git commit? - git commitって何なの?
Kamimura Taichi
?
angularJS vs angular2
angularJS vs angular2
Kamimura Taichi
?
ruby 関数化のメリット
ruby 関数化のメリット
Kamimura Taichi
?
补箩补虫ってなんなの
补箩补虫ってなんなの
Kamimura Taichi
?
わからないことか?わからないときにどうしたらよいのか。
わからないことか?わからないときにどうしたらよいのか。
Kamimura Taichi
?
Session管理とRailsのcookie store
Session管理とRailsのcookie store
Kamimura Taichi
?
Ruby - オブジェクト指向入門
Ruby - オブジェクト指向入門
Kamimura Taichi
?
础苍蝉颈产濒别超入门
础苍蝉颈产濒别超入门
Kamimura Taichi
?
What is git commit? - git commitって何なの?
What is git commit? - git commitって何なの?
Kamimura Taichi
?
Ad

Ansible roleとinventoryの書き方