- 追加された行はこの色です。
- 削除された行はこの色です。
-プロビジョニングツール
#contents
*インストール前に [#m389e3bc]
コントロールされる側に以下のパッケージが必要。
python-simplejson
*Install [#a1ef0832]
Pythonのパッケージ管理であるpipを使うと楽。EPEL から yum でもインストール可能。
yum install ansible --enablerepo=epel
*文法チェック [#lcd9b61e]
ansible-playbook -i hosts simple-playbook.yml --syntax-check
*Playbook [#a57e2726]
- hosts: all
user: hoge
tasks:
- script: /home/hoge/test.sh
*モジュール [#oe3c52a8]
**Command Module [#da755925]
リモートでOSコマンドを実施する。
# Example from Ansible Playbooks.
- command: /sbin/shutdown -t now
# createsに指定されたファイルがない場合はcommandの処理を実行
- command: /usr/bin/make_database.sh arg1 arg2 creates=/path/to/database
# somedir以下に移動し、かつ
# createsに指定されたファイルがない場合はcommandの処理を実行
- command: /usr/bin/make_database.sh arg1 arg2
args:
chdir: somedir/
creates: /path/to/database
#繰り返し処理のサンプル。変数定義済みであればwith_items:{{users}}でもOK
- name: add several users
user: name={{ item }} state=present groups=wheel
with_items:
- testuser1
- testuser2
#コンパイルのタスクだが、実際にはシェルが実行できるのでなんでもOK
- name: Apacheコンパイル
shell:
make
chdir=/usr/local/src/httpd-2.4.12
creates=/usr/local/apache/2.4.12/bin/httpd
**Script Module [#o42793d1]
操作先にShellを送り込んで実行。操作先にpythonが必要ないのもメリット
**Shell Module [#b6a7badd]
Ansibleの実行サーバー先にあるshファイルをリモートに送り込んで実行できる。
*条件 [#e7f8c9ad]
変数は{{}}で囲まないので注意
- user: root
hosts: all
tasks:
- name: install mlocate
yum: name=mlocate state=installed
when: install == "y"