Ansibleの基本的な使い方
概要
what ansible?
- サーバ構築を自動化するツール 基本的な部分はchefとかと目的は同じ
- 操作にはsshログインにて操作を行うためよけいなエージェントをサーバ側へ入れる必要がない
- 構築用設定ファイルはymlにて設定
- chefではrubyが使えるので何でもできるがansibleは基本的なコマンドのみを提供する
- ansibleのみでは単体での動作だが、playbookに書いた手順を実行することができる
インストール
macports
$ sudo port install ansible
$ ansible --version
ansible 1.8.2
apt-get
$ sudo apt-get install ansible
$ ansible --version
ansible 1.5.4
使い方
対象ホストを記述したファイルと、手順を書いたplaybookと、サーバに対しての操作を行うmoduleがそろっていると使える
基本
$ ansible <対象グループ> オプション
ex.
$ ansible servers -i hosts.ini --sudo -u ubuntu --private-key="private.pem" -a "shutdown -h now"
hosts.ini 対象サーバのリストを書いたファイル
[servers]
192.168.xxx.xxx
192.168.xxx.yyy
ホスト指定設定ファイル
- 指定をしないとデフォルトだとhelpで表示されるdefaultを指定
- -iかinventory-file= にて指定を行う
- ansible <対象グループ> -i INVENTORY OR –inventory-file=INVENTORY
- <対象グループ>にallを入れるとiで指定したホスト全てに対して処理を行う
サーバ指定ファイル
192.168.xxx.aaa
[main]
192.168.xxx.yyy
192.168.xxx.xxx
192.168.xxx.zzz
[db]
192.168.xxx.bbb
191.168.xxx.ddd
Module
ホストへPing
ping moduleをsってサーバへpingを送信。
サーバが生きていればsuccessが表示される。
$ ansible main -i hosts.ini -m ping
192.168.xxx.yyy | success >> {
"changed": false,
"ping": "pong"
}
192.168.xxx.yyy | success >> {
"changed": false,
"ping": "pong"
}
...
..
.
その他のModuleはこのへんにドキュメントがある
http://docs.ansible.com/modules_by_category.html
主要オプション
コマンドを実行する ( -a )
$ ansible servers -i hosts.ini -a "shutdown -h now"
sshに必要なキーファイル指定 ( –private-key )
$ ansible servers -i hosts.ini --private-key="hogehoge.pem" -a "shutdown -h now"
ログイン用ユーザ指定 ( -u )
$ ansible final-servers -i hosts -u ubuntu -a "shutdown -h now"
sshログインパスワード & sudoパスワード ( -k )
$ ansible final-servers -i hosts -u ubuntu -k -a "shutdown -h now"
sudoで実行 ( –sudo )
$ ansible final-servers -i hosts --sudo -a "shutdown -h now"
-
前の記事
Vagrant基本まとめたので書いておく 2015.04.27
-
次の記事
JAWS-UG 岩手 2015-07-04 2015.07.08