この記事は、Ansible Advent Calendar 2017 の6日目の記事です。
Ansible を使っているプロジェクトで、毎回書いているような Makefile
を公開。
サンプルレポジトリは、以下。
yyoshiki41/ansible-makefile
Makefile
$ make help
Make command examples for Ansible
ls-hostname to show all host ips
syntax-check to run with --syntax-check option
lint to lint playbook files
galaxy-install to install roles using ansible-galaxy
vault-dec to decrypt secret.yml
vault-enc to encrypt secret.yml
vault-edit to edit secret.yml
vault-view to view secret.yml
■ ls-hostname
とりあえずhostへのコマンドが通るか、手っ取り早く確認したい時の為。
$ ansible all -i hosts -m shell -a "hostname;"
■ syntax-check
ansible-playbook
コマンドについている --syntax-check
オプションでエラーがないか確認。
とりあえず、自分はCIに入れてます。
$ ansible-playbook playbook_dir/*.yml -i hosts --syntax-check
■ lint
ansible-lint
はフォーマットにあまり重きを置いていないチームでは、不要かもです。
$ ansible-lint playbook_dir/*.yml
■ galaxy-install
Ansible Galaxy に登録されているロールをインストールするエイリアス。
requirements.yml
の記述方法は、公式を。
$ ansible-galaxy install -r ./roles/requirements.yml --roles-path ./roles
■ vault-enc
/ vault-dec
ansible-vault
での encrypt/decrypt 時のエイリアス。
vault-password は、ファイルパスをオプションで渡していますが環境に合わせて、ANSIBLE_VAULT_PASSWORD_FILE
や対話式で行うものに変更してください。
$ ansible-vault decrypt hosts/group_vars/secret.yml --vault-password-file ./.secret/vault_password
$ ansible-vault decrypt hosts/group_vars/secret.yml --vault-password-file ./.secret/vault_password
他にも ansible-vault edit
, ansible-view
とかもお好みで。
この他にもこんなのmakeに設定しているというのがあれば、ぜひ!