てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible] どこにどういうキーワードを指定できるかは公式ドキュメントの Playbook Keywords で分かる

他人の書いた Playbook を見て「そのキーワード(ディレクティブ)ってそこにも書けるの!?」と思うような経験はありませんでしょうか。

例えば、以下の Playbook をご覧ください。

- name: ios test         # (1)
  hosts: ios
  gather_facts: false
  tags:                  # (2)
    - ios

  tasks:
    - name: show version
      ios_command:
        commands: "{{ commands }}"
      register: result_version
      vars:               # (3)
        commands:
          - show version

もしかしたら (1)〜(3) あたりは、見かけることが多くないかもしれません。

どこに何を指定できるのかは、公式ドキュメントの Playbook Keywords というページで紹介されています。

docs.ansible.com

例えば、上記の Playbook の

  • (1) は Play 単位の name
  • (2) は Play 単位の tags
  • (3) は Task 単位の vars

として紹介されています。

モジュールのオプションはモジュールの説明ページを見れば良いのですが、その他の一般的な部分は、見かけたサンプルのかきっぷりによりがちな気がします。一度 Playbook Keywords を見ると、新しい発見があるかもしれません。

なお、余談ですが、 (3) の Task 単位の vars変数優先度のリストで、task vars (only for the task) として掲載されています。割と強めです。