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
780
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
生成AI時代の開発組織・技術・プロセス 〜 ログラスの挑戦と考察 〜
itohiro73
0
140
Snowflake Summit 2025 データエンジニアリング関連新機能紹介 / Snowflake Summit 2025 What's New about Data Engineering
tiltmax3
0
310
生成AIで小説を書くためにプロンプトの制約や原則について学ぶ / prompt-engineering-for-ai-fiction
nwiizo
4
1.5k
PHP開発者のためのSOLID原則再入門 #phpcon / PHP Conference Japan 2025
shogogg
4
730
監視のこれまでとこれから/sakura monitoring seminar 2025
fujiwara3
11
3.9k
より良いプロダクトの開発を目指して - 情報を中心としたプロダクト開発 #phpcon #phpcon2025
bengo4com
1
3.1k
Navigation3でViewModelにデータを渡す方法
mikanichinose
0
220
Абьюзим random_bytes(). Фёдор Кулаков, разработчик Lamoda Tech
lamodatech
0
340
Witchcraft for Memory
pocke
1
310
Tech-Verse 2025 Keynote
lycorptech_jp
PRO
0
100
VISITS_AIIoTビジネス共創ラボ登壇資料.pdf
iotcomjpadmin
0
160
BigQuery Remote FunctionでLooker Studioをインタラクティブ化
cuebic9bic
3
280
Featured
See All Featured
Practical Orchestrator
shlominoach
188
11k
Why Our Code Smells
bkeepers
PRO
337
57k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Writing Fast Ruby
sferik
628
61k
Being A Developer After 40
akosma
90
590k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
17
940
Code Review Best Practice
trishagee
68
18k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.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 ! を書いてみよう