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では無い時は
ansible_ssh_port=2222
sshパスワード入力の際はオプションをつける
-k -c paramiko