試験項目 5.5 · CCNA-149
Ansible Fundamentals
ドメイン 5 · AI・ネットワーク運用・管理 · AnsibleによるConfiguration Management
このページのゴール
AnsibleでNetwork DeviceへCommandを実行するためのAgentless Architecture、Inventory、Playbook、Play、Task、Moduleの関係を読み取れるようにする。
このページで学ぶこと
- Ansible Overview
- Agentless Architecture
- Control / Managed Device Architecture
- Ansible Inventory
- Inventory Group / hosts Relationship
- Connection Information
- Ansible Playbook
- Ansible Play
- Ansible Task
- Ansible Module
Ansibleの基本構造
AnsibleはConfiguration Management / Automationに利用できるAgentless Toolである。Control側からManagement Interfaceを介してManaged Deviceへ接続し、InventoryとPlaybookを使って対象と実行内容を定義する。
Ansible Control Environment
├─ Inventory
│ └─ Host / Group / Connection Information
└─ Playbook
└─ Play
├─ hosts
└─ tasks
└─ module
↓
Managed DeviceAgentless Architecture
Agentlessとは、Managed Device側へAnsible専用AgentをInstallしなくても管理できる構造を指す。認証やNetwork Connectivity、利用可能なManagement Interfaceは依然として必要である。
Inventory
Inventoryは管理対象HostやGroupを定義する。IP Address、Network OS、Connection MethodなどのVariableをInventoryや関連Variableに持たせることもできるが、Connection情報の唯一の保存場所ではない。
[branch]
R1
R2
[datacenter]
SW1
SW2Inventory Groupとhosts:
Playbookのhosts:はInventory内のHostまたはGroupを参照する。Page149ではこの構造関係を理解し、具体的な実行対象Deviceの決定はPage150で扱う。
- hosts: branch
tasks:
...Playbook / Play / Task / Module
PlaybookはYAMLでAutomation Workflowを定義する。Playは対象HostとTasksを関連付け、TaskはModuleを呼び出してActionを実行する。Moduleは実際のOperationを行うReusable Componentである。
- hosts: routers
tasks:
- name: Verify interfaces
cisco.ios.ios_command:
commands:
- show ip interface briefModule表記
ios_command / ios_configのようなShort Nameと、cisco.ios.ios_command / cisco.ios.ios_configのようなFQCNが現れ得る。Objective 5.5では完全修飾名の暗記ではなく、Moduleが担うOperationを読み取ることを重視する。
重要な注意点
Agentlessは認証不要という意味ではない。InventoryとPlaybookを同一視しない。hosts:はCLI Commandではなく対象を指定する。Connection情報はInventoryだけに限定されない。Short NameとFQCNのどちらか一方だけを唯一の正解として扱わない。
理解確認
このページの内容を20問で確認します。
理解確認20問へ →