Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AnsibleでOrchestrationを体感しよう!
Search
Kei Iwasaki
October 20, 2013
Technology
0
800
AnsibleでOrchestrationを体感しよう!
NODE-Setagaya#5 (
http://www.zusaar.com/event/1102005
) で使った資料です。
Kei Iwasaki
October 20, 2013
Tweet
Share
More Decks by Kei Iwasaki
See All by Kei Iwasaki
ECS Scheduled Task 上の定期実行バッチを ecschedule で GitOps 化した話 / A story about a scheduled execution batch on the ECS Scheduled Task converted to GitOps with ecschedule
laughk
2
11k
Python と出会ったインフラエンジニアの話 / / The story of an infrastructure engineer who met Python
laughk
0
1.2k
MSPだってプロビジョンしたい!
laughk
1
5.5k
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
laughk
0
2.7k
Other Decks in Technology
See All in Technology
TS-S205_昨年対比2倍以上の機能追加を実現するデータ基盤プロジェクトでのAI活用について
kaz3284
1
210
なぜスクラムはこうなったのか?歴史が教えてくれたこと/Shall we explore the roots of Scrum
sanogemaru
5
1.7k
スクラムガイドに載っていないスクラムのはじめかた - チームでスクラムをはじめるときに知っておきたい勘所を集めてみました! - / How to start Scrum that is not written in the Scrum Guide 2nd
takaking22
1
140
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
1.2k
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
190
下手な強制、ダメ!絶対! 「ガードレール」を「檻」にさせない"ガバナンス"の取り方とは?
tsukaman
2
450
Unlocking the Power of AI Agents with LINE Bot MCP Server
linedevth
0
110
機械学習を扱うプラットフォーム開発と運用事例
lycorptech_jp
PRO
0
590
slog.Handlerのよくある実装ミス
sakiengineer
4
440
IoT x エッジAI - リアルタイ ムAI活用のPoCを今すぐ始め る方法 -
niizawat
0
100
Evolución del razonamiento matemático de GPT-4.1 a GPT-5 - Data Aventura Summit 2025 & VSCode DevDays
lauchacarro
0
210
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
130
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
530
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Music & Morning Musume
bryan
46
6.8k
Unsuck your backbone
ammeep
671
58k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Transcript
Ansible で Orchestration を ! 体感しよう NODE-Setagaya#5 2013.10 @laugh_k
最近話題の Ansible という ” ” いわゆる 構成管理 ツールを実際にさわってみて とりあえずみんなで !
!! ! 「おー すげー 」って言おうぜ という内容です 突っ込んだことはできないです 今回の NODE-Setagaya
Python 製の構成管理ツール おおまかには以下のような特徴がある。 • 作業対象は sshd のみ入っていればよく 特別なエージェントなどは必要ない ※ ただし
python-simplejson には依存している • Playbook と呼ばれる YAML 形式のファイルで 作業内容を記載しておくことができる • SSH コマンドのオプションを環境変数で渡せるため ssh_config を用いた多段 SSH も使える。 Ansible とは
というわけで !! さっそく試してみよう
1.環境の準備
1. 環境の準備 まずは Python の開発環境を整えます。 実は yum や apt でも入れることはできますが、
せっかくなのでこの機会に ! 以下のようなモダンな環境の整え方を抑えておきましょう • pyenv https://github.com/yyuu/pyenv 複数バージョンの Python をインストール、管理が可能。 • pyenv-virtualenv https://github.com/yyuu/pyenv-virtualenv virtualenv を pyenv 環境で使えるようにしたプラグイン。 アプリケーションごとにモジュールを管理することができる。
1. 環境の準備 1-1. pyenv, pyenv-virtualenv のインストール ※ Unix 系環境が前提 %
cd % git clone git://github.com/yyuu/pyenv.git .pyenv % cat >> ~/.bashrc << \EOF > > ## pyenv Configure > export PYENV_ROOT="$HOME/.pyenv" > export PATH="$PYENV_ROOT/bin:$PATH" > eval “$(pyenv init -)” > EOF % exec $SHELL
1. 環境の準備 1-1. pyenv, pyenv-virtualenv のインストール ※ Unix 系環境が前提 %
cd .pyenv/plugins % git clone git://github.com/yyuu/pyenv-virtualenv.git % pyenv rehash
1. 環境の準備 1-2. pyenv 経由で Python2.6 系最新のインストール ※ Unix 系環境が前提
※ ライブラリ足りないと怒られるかも .. % pyenv install -l % pyenv install 2.6.8 % pyenv rehash
1. 環境の準備 1-2. ansible 用の Python 環境を作成 ※ Unix 系環境が前提
% cd ## 本日の作業用ディレクトリ作成 % mkdir node-setagaya5 ## Ansible 用に 2.6 系で Python 環境を作成 % pyenv virtualenv 2.6.8 node-setagaya5 % cd node-setagaya5 ## 作業フォルダで今回作成した Python 環境を使うように設定 % pyenv local node-setagaya5 ## Ansible のインストール % pip install ansible
そろそろ VirtualBox テンプレート ! 配るよ
2 . コマンドラインで Ansible を試す
2 . コマンドラインで Ansible を試す 2-1. hosts ファイルの作成 作業対象を以下のような感じで定義しておく。 セクションを作るとグループとして扱うことができる。
hosts ファイルの中身 ↓ 詳しいパラメータは を参照 http://www.ansibleworks.com/docs/intro_inventory.html % cd ~/node-setagaya5 % vim hosts [localnet] node-setagaya5 ansible_ssh_host=192.168.10.10
2 . コマンドラインで Ansible を試す 2-1. 試しに ping を打ってみる ”
プログラミングで言う Hello World!!” ! 的なことをやってみましょう % ansible node-setagaya5 \ > -i hosts \ ## 利用する hosts ファイルを指定 > -u root \ ## SSH ログインで使用するユーザーを指定 > -m ping \ ## 利用する ansible モジュールを指定 > -k ## SSH ログインをする際にパスワードの入力を求める場合に指定 SSH password: node-setagaya5 | success >> { "changed": false, "ping": "pong" }
2 . コマンドラインで Ansible を試す 2-2. 試しに適当なコマンドを打ってみる ↓ 利用できるモジュールは を参照
http://www.ansibleworks.com/docs/modules.html % ansible node-setagaya5 \ > -k -i hosts -u root -m command \ > -a 'uname -n' ## リモート先で実行するコマンドを指定 SSH password: node-setagaya5 | success | rc=0 >> node-setagaya5
3 . Playbook を試す
3 . Playbook を試す 3-1. YAML ! 形式で以下のように作る 例 )
sapmle.yml ( あくまで雰囲気を掴むためのものなのでいろいろ不足しております ) Playbook ↓ のモジュール、書き方は を参照 http://www.ansibleworks.com/docs/playbooks.html --- - hosts : node-setagaya5 user : username sudo : yes vars : php_ver : 5.5 handlers : - name : PHP Compile script : install-PHP-{{ php_ver }}.sh task : - name : Install PHP Library yum : name=$items enablerepo=epel state=installed with_items : - libmcrypt - libmcrypt-devel notify : PHP Compile
3 . Playbook を試す 3-2. Playbook の内容を実行する Playbook ! を書いたら実行するのみ
## -C オプションで実際にジョブは実行されずに内容の確認ができる (dry_run) % ansible-playbook sample.yml -i hosts -k -C ## 実際に実行する。基本的なオプションの意味は ansible コマンドと同様 % ansible-playbook sample.yml -i hosts -k
では実際に Playbook ! を書いてみよう