Makefile
devops
Ansible
AnsibleDay 6

Ansibleでよく使うコマンドをmakefileに落としておく

この記事は、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に設定しているというのがあれば、ぜひ!