Cisco / CCNA 200-301 v2.0

試験項目 5.5 · CCNA-150

Ansible Command Execution

ドメイン 5 · AI・ネットワーク運用・管理 · AnsibleによるConfiguration Management

このページのゴール

InventoryとPlaybook断片を読み、対象Device、実行Operation、ansible-playbook Command、実行結果を判断できるようにする。

このページで学ぶこと

  • ansible-playbook Execution
  • Inventory Option -i
  • Execution Target Resolution
  • Task / Operation Interpretation
  • Operational vs Configuration Operation
  • Result Handling (register / debug)
  • Execution Result / Play Recap
  • Pre-execution Target / Task Verification

Playbookの実行

PlaybookはControl側でansible-playbookを使って実行する。別Inventoryを明示する場合は-iでInventoryを指定する。

ansible-playbook playbook.yml
ansible-playbook -i inventory.ini playbook.yml

-iはIOS Commandを指定するOptionではなく、使用するInventoryを指定する。

Target Deviceを決める

[branch]
R1
R2

[core]
C1

- hosts: branch
  tasks:
    ...

この例ではPlayの対象はInventory内のbranch Group、つまりR1とR2である。実行前にInventoryとhosts:の組み合わせを確認することで、意図しないDeviceへの実行を防ぐ。

Task / Module / commandsを読む

- name: Verify interfaces
  cisco.ios.ios_command:
    commands:
      - show ip interface brief

Task名だけでなくModuleとParameterを読み、実際のOperationを判断する。この例ではOperational Show Commandを実行して状態を取得する。

- name: Configure description
  cisco.ios.ios_config:
    lines:
      - description Uplink-to-Core
    parents:
      - interface GigabitEthernet1/0/1

Configuration系TaskではDevice Stateが変更され得る。Objective 5.5では高度なModule Parameter暗記ではなく、Operational確認かConfiguration変更かを読み分ける。

Result Handling

- name: Verify interfaces
  cisco.ios.ios_command:
    commands:
      - show ip interface brief
  register: show_result

- debug:
    var: show_result.stdout_lines

registerはTask ResultをVariableへ保持し、debugはResultやVariableの内容を表示して確認する代表的な方法である。

実行結果

表示意味
okTaskが正常に処理されたことを示す
changed正常処理のうち対象状態に変更が発生したことを示すIndicator
failedTask実行失敗
unreachable対象HostへのConnectionを確立できない等

okとchangedを単純な排他的Statusとして扱わない。Show Command中心のTaskではchanged=0でも正常終了できる。

実行前確認

Use Objectiveでは「実行できる」だけでなく、どのInventory・どのTarget・どのTaskを実行するかを確認することが重要である。Playbook名だけで安全性を判断せず、実際のhosts:とTask内容を確認する。

重要な注意点

ansible-playbookはNetwork Device上のIOS XE Commandではない。-iはInventory指定である。changed>0は失敗を意味しない。changed=0も「何も実行されなかった」とは限らない。Short Name / FQCNはどちらも現れ得る。

理解確認

このページの内容を16問で確認します。

理解確認16問へ →