ansible cmd

ansible
server01のipアドレスと鍵の場所はprovisioning/inventory/hogehogeに書かれている前提。
roleはprovisioning/site.ymlに指定されている前提。

skip-tags

--skip-tags 'dev,stage'

文法チェック

--syntax-check

最近よく使う

ansible-playbook -i provisioning/inventory/zabbix provisioning/zabbix.yml -v -K -k -s -U root

ping

ansible -i provisioning/inventory/hogehoge server -m ping

シェルコマンド実行 shellはリモートノードのシェル(/bin/sh)を通して実行される。 | や* を使用できる。

ansible -K -i provisioning/inventory/production -u fractale -m shell -a "sudo gzip /hogehoge/piyo/app.2014*.log" server01

commandは上記のものが使用できない。

ansible -K -i provisioning/inventory/production -u fractale -m command -a "ls -lah" server

tag指定して yes/no で答えながら複数サーバにansibleを流す。

ansible-playbook -i provisioning/inventory/production provisioning/site.yml -t "tag" --limit=server01,server02 -v -K -k -s -U root --step

tag指定

ansible-playbook -i provisioning/inventory/production provisioning/site.yml -t "tag" --limit=server01 -v -K -k -s -U root
ansible -K -i provisioning/inventory/production -u fractale -m command -a "sudo sed -i -e '/# EnableRemoteCommands=0/a\EnableRemoteCommands=1' /etc/zabbix/zabbix_agentd.conf" server
ansible -K -i provisioning/inventory/production -u fractale -m command -a "sudo sed -i -e '/# Timeout=3/a\Timeout=30' /etc/zabbix/zabbix_agentd.conf" server
ansible -K -i provisioning/inventory/production -u fractale -m command -a "sudo service zabbix-agent restart" server
ansible -K -i provisioning/inventory/production -u fractale -m command -a "sudo sed -i -e 's/# access_log \/var\/log\/nginx\/access.log main;/ access_log \/var\/log\/nginx\/access.log main;/g' /etc/nginx/nginx.conf" server
ansible -K -i provisioning/inventory/production -u fractale -m command -a "sudo sed -i -e 's/\"\$request_time\" \"\$upstream_response_time\"/\$request_time \$upstream_response_time/g' /etc/nginx/nginx.conf" server
ansible -K -i provisioning/inventory/production -u fractale -m command -a "sudo service nginx reload" server

roleのテンプレを作るコマンド

[astel@MacBook-Pro] $ ansible-galaxy init hbase
hbase was created successfully
[astel@MacBook-Pro] $ cd hbase
[astel@MacBook-Pro] $ ls
README.md  defaults/  files/     handlers/  meta/      tasks/     templates/ vars/

大体使うのはfiles,tasks,templates,varsくらいなので他の消しちゃうんですけどね…
ディレクトリの中にmain.ymlとかもできるので便利な時もあるかも

hosts設定
portが22では無い時は

1
ansible_ssh_port=2222

sshパスワード入力の際はオプションをつける

-k -c paramiko