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
820
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.3k
MSPだってプロビジョンしたい!
laughk
1
5.5k
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
laughk
0
2.8k
Other Decks in Technology
See All in Technology
What happened to RubyGems and what can we learn?
mikemcquaid
0
310
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
460
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.5k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
260
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
160
Greatest Disaster Hits in Web Performance
guaca
0
270
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
650
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
820
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
170
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
340
Featured
See All Featured
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Six Lessons from altMBA
skipperchong
29
4.2k
Site-Speed That Sticks
csswizardry
13
1.1k
Unsuck your backbone
ammeep
671
58k
Automating Front-end Workflow
addyosmani
1371
200k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
We Are The Robots
honzajavorek
0
160
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
50k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
310
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
730
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 ! を書いてみよう