SlideShare a Scribd company logo
Ansible 入門
#pyfes 2013.11 in Tokyo
by @r_rudi(しろう)

…?
Ansible
Ansible
間違い
正しい

正解
Chef
Puppet
Salt
cfengine
juju
…..
構成管理
ツール
Provisiong tool
構成
管理
Ansible入門...?
by Lee Thompson at Velocity 2010
一部誇張表現があります
本日の前提知識
Assumptions
Task
- name: install python
homeblew: name=python
installs_options={{ option }}
state=present
Task
タスク名(省略可)

- name: install python
引数
homeblew: name=python
モジュール名
installs_options={{ option }}
変数
state=present
状態: absent を指定すると消せる
(moduleによる)
Playbook == Taskのセット
- hostname:
name=AnsibleDemo
- apt_repository:
repo=’deb http://….’
- apt_key:
url=http://…..

実行順
実行方法
% ansible-playbook hoge.yml
-i inventory file (接続先ホストのリスト)
-u username
-k ssh pass
-C check mode
-D diff表示
OK
Let' Go !
unarchive module
- unarchive: src=blah.tar.gz dest=/tmp/
copy

Remote

unzip
untar

Local

Remote
shell module
- shell: foo.sh
copy

Remote

Run

Local

Remote

Run
ec2
- local_action: ec2
args:
instance_type: c1.medium
image: emi-329394
count: 3
Launch Instances module
- Google Compute Engine
- Digital Ocean
- Linode
- Rackspace
- Docker
:
インスタンスはいくつ?
- local_action: ec2
args:
count: 3
- local_action: ec2
args:
count: 3
- local_action: ec2
args:
count: 3
インスタンスはいくつ?
- local_action: ec2
args:
count: 3
- local_action: ec2
args:
count: 3
- local_action: ec2
args:
count: 3

9
インスタンスはいくつ?
- local_action: ec2
args:
count: 3
- local_action: ec2
args:
count: 3
- local_action: ec2
args:
count: 3

9
冪等性...?
ec2 elb
- local_action: ec2_elb
args:
instance_id:
“{{ ansible_ec2_instance_id }}”
state: present
deploy !!
- local_action: ec2_elb
args: state=absent
- nagios: action=disable_alert
- git: repo=.... dest=/www version=release-11
- service: name=foo state=restarted
- wait_for: port=8080 state=started
:
rolling update
- serial: 1
Remote

- 一台ずつ実行できる
Remote

- 数台まとめてもできる
Remote
Python API
#pyfes ですから…
ansible + flask
from ansible.inventory import Inventory
from ansible.playbook import PlayBook
from ansible import callbacks

from flask import Flask, render_template
import json
app = Flask(__name__)

@app.route("/play")
def play():
inventory = Inventory('localhost.conf')

stats = callbacks.AggregateStats()
playbook_cb =
callbacks.PlaybookCallbacks()

runner_cb =
callbacks.PlaybookRunnerCallbacks(stats)
results = PlayBook(playbook='pyfesdemo.yml',
forks=1,
remote_user='shirou',
sudo=False,

module_path='module',
callbacks=playbook_cb,

runner_callbacks=runner_cb,
stats=stats,

inventory=inventory).run()
return json.dumps(results)
AnsibleWorks AWX
Demo
or Die
Web UI demo
本当のデモ: twilio module
- twilio APIを使うshell script
#!/usr/bin/env sh
AccountSid=AAAAAAAAA
AuthToken=07999999999999
curl -X POST 'https://api.twilio.com/2010-0401/Accounts/ACe0361e5b6236a8948191d08635bcd449/Calls.json' ¥
-d 'From=%2B815031596145' -d 'To=%2B81999999993' ¥
-d 'Url=https%3A%2F%2Fptop.only.wip.la%3A443%2Fhttp%2Fexample.com%2Fansible.html' -u
${AccountSid}:${AuthToken}
echo "changed=True"
exit 0
module 作成
- 超簡単
- スクリプト言語ならなんでも書ける
- 残念ながらgoは無理
- YAMLで書きにくいなら気軽にmoduleを作成
- サーバの./libraryに置いておけば使ってく
れる
handler
tasks:
- template: src=/https/www.slideshare.net/srv/hoge.j2 dest=/etc/hoge
notify:
- restart apache
handlers:
- name: restart apache
service: name=httpd state=restarted
何台ぐらい扱えるの?
We have users using Ansible in push
mode against 5000 machines at a time
Accelarated mode
- SSHでdaemonを起動
- あとはdaemonと直接通信
- このdaemonは通信が
終わると自動で終わる

- hosts: all
accelerate: true
tasks: ...

- 2-8x faster than SSH
モジュール紹介
Arista networks
- 10G/40G/100Gのスイッチ

- sshで入れる
- pythonが入っている
- Ansibleの初期からのスポンサー
Arista modules
- name: enable interface Ethernet 1
arista_interface:
interface_id=Ethernet1 admin=up
speed=10g duplex=full logging=true
DB
- mongodb_user
- mysql_db
- mysql_replication
- postgres_user
- postgres_db
- riak
- redis
notification
- irc
- hipchat
- jabber
- mail
- osx_say
まとめ
- Ansibleは自動実行ツールとしても使えるよ
- moduleたくさんうれしいな
- notification moduleは便利
- 欲しいものがなければ簡単に作れるよ
- python必要ないよ
- 実行速度は十分速いよ
Ansible 本
- 最近出ました
- 平易な英語
- 広い範囲をカバー
- 今日飛ばした部分

More Related Content

PPTX
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
CLARA, Inc.
 
PDF
Ansible 入門 #01 (初心者向け)
Taro Hirose
 
PDF
Ansible入門
Daiki Hayakawa
 
PDF
ChefとPuppetの比較
Sugawara Genki
 
KEY
Fabricでサーバー管理をDRYにしよう
max747
 
PDF
Fabric Essentials
Yoshinari Takaoka
 
PDF
What is an Ansible?
Shunsaku Kudo
 
PDF
2日間Fabricを触った俺が
 色々解説してみる
airtoxin Ishii
 
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
CLARA, Inc.
 
Ansible 入門 #01 (初心者向け)
Taro Hirose
 
Ansible入門
Daiki Hayakawa
 
ChefとPuppetの比較
Sugawara Genki
 
Fabricでサーバー管理をDRYにしよう
max747
 
Fabric Essentials
Yoshinari Takaoka
 
What is an Ansible?
Shunsaku Kudo
 
2日間Fabricを触った俺が
 色々解説してみる
airtoxin Ishii
 

What's hot (20)

PPTX
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Takeshi Komiya
 
PDF
Ansible 2.0 のサマライズとこれから
Takeshi Kuramochi
 
PPT
Puppet Best Practices? at COOKPAD
Gosuke Miyashita
 
PDF
Puppet on AWS
Sugawara Genki
 
PPTX
Open Source System Administration Framework - Func
Gosuke Miyashita
 
PPTX
Itamae-Serverspec入門
辰徳 斎藤
 
PPTX
Ansible ではじめるインフラのコード化入門
Sho A
 
PDF
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Masahiro Nagano
 
PDF
Lisp Tutorial for Pythonista Day 6
Ransui Iso
 
PDF
実"戦"CakePHP Plugin
Kenichirou Oyama
 
PDF
Webサーバ勉強会03
oranie Narut
 
PDF
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
 
PDF
Ansible troubleshooting 101_2021
Hideki Saito
 
PDF
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
 
PDF
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Hidetoshi Hirokawa
 
PPT
Using Windows Azure
Shinji Tanaka
 
PPTX
明日から始める Chef 入門 #bpstudy
Takeshi Komiya
 
PDF
Webサーバのチューニング
Yu Komiya
 
PDF
FuelPHPで3種のprofilerを使ってみた
Katsuhiro Miura
 
PDF
今日から使い始めるChef
Masahiro NAKAYAMA
 
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Takeshi Komiya
 
Ansible 2.0 のサマライズとこれから
Takeshi Kuramochi
 
Puppet Best Practices? at COOKPAD
Gosuke Miyashita
 
Puppet on AWS
Sugawara Genki
 
Open Source System Administration Framework - Func
Gosuke Miyashita
 
Itamae-Serverspec入門
辰徳 斎藤
 
Ansible ではじめるインフラのコード化入門
Sho A
 
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Masahiro Nagano
 
Lisp Tutorial for Pythonista Day 6
Ransui Iso
 
実"戦"CakePHP Plugin
Kenichirou Oyama
 
Webサーバ勉強会03
oranie Narut
 
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
 
Ansible troubleshooting 101_2021
Hideki Saito
 
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
 
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Hidetoshi Hirokawa
 
Using Windows Azure
Shinji Tanaka
 
明日から始める Chef 入門 #bpstudy
Takeshi Komiya
 
Webサーバのチューニング
Yu Komiya
 
FuelPHPで3種のprofilerを使ってみた
Katsuhiro Miura
 
今日から使い始めるChef
Masahiro NAKAYAMA
 
Ad

Viewers also liked (20)

PPTX
サーバーの動くメモをAnsibleでとろう
Takayuki Hayashi
 
DOCX
тестове завдання
Olga19744
 
PDF
Tinkerer for pyfes 201303
shirou wakayama
 
DOC
Bai 1. th la nganh kh tiet 1
Ân Nguyễn
 
PPT
Nota 1 bahagian luar ikan hiasan
ctrosnahsue
 
DOCX
госы все
belfegor21
 
PDF
ansible-playbook useful command line options
shirou wakayama
 
PDF
Ansible meetup201409
shirou wakayama
 
PDF
EdisonでMQTT
shirou wakayama
 
PDF
MQTT meetup in Tokyo 機能概要
shirou wakayama
 
PDF
Ansible Playbookの短時間デバッグ方法
Kishin Yagami
 
PDF
Ansible for beginners ...?
shirou wakayama
 
PPTX
Using Google+ As A Marketing Channel
Brian Jensen
 
PDF
Vagrant環境のAnsibleを速くしたい
Kazuhiro Oinuma
 
PDF
Railsチュートリアルの歩き方 (第3版)
Yohei Yasukawa
 
PDF
Enjoy the Ansible
Yasuyuki Fujikawa
 
PDF
Vagrant+Ansibleで検証環境を簡単構築
Ken Sawada
 
PDF
Ansible はじめてみました
Takeshi Kuramochi
 
PDF
Ansible ではじめるサーバ作業の自動化
Masashi Shinbara
 
PDF
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
Takeshi Kuramochi
 
サーバーの動くメモをAnsibleでとろう
Takayuki Hayashi
 
тестове завдання
Olga19744
 
Tinkerer for pyfes 201303
shirou wakayama
 
Bai 1. th la nganh kh tiet 1
Ân Nguyễn
 
Nota 1 bahagian luar ikan hiasan
ctrosnahsue
 
госы все
belfegor21
 
ansible-playbook useful command line options
shirou wakayama
 
Ansible meetup201409
shirou wakayama
 
EdisonでMQTT
shirou wakayama
 
MQTT meetup in Tokyo 機能概要
shirou wakayama
 
Ansible Playbookの短時間デバッグ方法
Kishin Yagami
 
Ansible for beginners ...?
shirou wakayama
 
Using Google+ As A Marketing Channel
Brian Jensen
 
Vagrant環境のAnsibleを速くしたい
Kazuhiro Oinuma
 
Railsチュートリアルの歩き方 (第3版)
Yohei Yasukawa
 
Enjoy the Ansible
Yasuyuki Fujikawa
 
Vagrant+Ansibleで検証環境を簡単構築
Ken Sawada
 
Ansible はじめてみました
Takeshi Kuramochi
 
Ansible ではじめるサーバ作業の自動化
Masashi Shinbara
 
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
Takeshi Kuramochi
 
Ad

Similar to Ansible入門...? (20)

KEY
ひのきのぼうだけで全クリ目指す
AromaBlack
 
PDF
PostgreSQLとpython
Soudai Sone
 
PDF
Subprocess no susume
Makoto Kishimoto
 
PDF
Ansible quickstart
Hideki Saito
 
PDF
kunibiki.rb #5 発表資料
yoshioka_cb
 
PPTX
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
靖 小田島
 
PPTX
Puppet入門
Tomita Akiyoshi
 
PDF
Niigata.pm #1
hayajo Imai
 
PDF
boost::shared_ptr tutorial
NU_Pan
 
PPTX
Puppetのススメ
Gosuke Miyashita
 
PDF
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
Etsuji Nakai
 
PDF
Mock and patch
Toru Furukawa
 
PDF
Distutil setuptools distribute
Atsushi Odagiri
 
PDF
Ansibleで始めるインフラ構築自動化
dcubeio
 
PDF
React Native GUIDE
dcubeio
 
PDF
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
 
PDF
debexpo(mentors.d.n)をハックするには
kenhys
 
PDF
2013.07.15 はじパタlt scikit-learnで始める機械学習
Motoya Wakiyama
 
PDF
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Tsuyoshi Yamamoto
 
PDF
Infinite Debian - Platform for mass-producing system every second
Taisuke Yamada
 
ひのきのぼうだけで全クリ目指す
AromaBlack
 
PostgreSQLとpython
Soudai Sone
 
Subprocess no susume
Makoto Kishimoto
 
Ansible quickstart
Hideki Saito
 
kunibiki.rb #5 発表資料
yoshioka_cb
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
靖 小田島
 
Puppet入門
Tomita Akiyoshi
 
Niigata.pm #1
hayajo Imai
 
boost::shared_ptr tutorial
NU_Pan
 
Puppetのススメ
Gosuke Miyashita
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
Etsuji Nakai
 
Mock and patch
Toru Furukawa
 
Distutil setuptools distribute
Atsushi Odagiri
 
Ansibleで始めるインフラ構築自動化
dcubeio
 
React Native GUIDE
dcubeio
 
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
 
debexpo(mentors.d.n)をハックするには
kenhys
 
2013.07.15 はじパタlt scikit-learnで始める機械学習
Motoya Wakiyama
 
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Tsuyoshi Yamamoto
 
Infinite Debian - Platform for mass-producing system every second
Taisuke Yamada
 

Recently uploaded (10)

PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 

Ansible入門...?