著者:平田 千浩
「Red Hat Ansible Automation Platform」は、OSS のAnsibleとAWXを基とした企業向け自動化の基盤です。RHELを含むさまざまなOS、さまざまなアプリケーション、さまざまな機器に対応し、局所的な作業からバージョン管理システムと連携した構成管理までを自動化できます。
シェルスクリプトマガジン Vol.66は以下のリンク先でご購入できます。

図2 インベントリファイルの例(hosts)
| 1 2 3 4 5 6 7 8 9 10 | [all:vars] ansible_ssh_private_key_file=/home/student1/.ssh/aws-private.pem [ios] ios1 ansible_host=XX.XX.XX.XX [ios:vars] ansible_user=ec2-user ansible_network_os=ios ansible_connection=network_cli | 
図3 Cisco IOS向けの簡単なPlaybookの例(snmp.yml)
| 1 2 3 4 5 6 7 8 9 10 11 | --- - name: snmp ro / rw string configuration   hosts: ios   gather_facts: no   tasks:   - name: ensure that the desired snmp strings are present     ios_config:       commands:         - snmp-server community ansible-public RO         - snmp-server community ansible-private RW | 
図6 Arista EOSを追加したインベントリファイル例(hosts)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [all:vars] ansible_ssh_private_key_file=/home/student1/.ssh/aws-private.pem [ios] ios1 ansible_host=XX.XX.XX.XX [ios:vars] ansible_user=ec2-user ansible_network_os=ios ansible_connection=network_cli [eos] eos1 ansible_host=YY.YY.YY.YY [eos:vars] ansible_user=ec2-user ansible_network_os=eos ansible_connection=network_cli ansible_become=true ansible_become_method=enable [control] ansible ansible_host=AA.AA.AA.AA ansible_user=student1 ansible_password=PASSWORD | 
図7 Arista EOSのコンフィグをバックアップするPlaybookの例(eos_backup.yml)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | --- - name: retrieve router configurations   hosts: eos   gather_facts: no   tasks:   - name: BACKUP THE CONFIG     eos_config:       backup: yes     register: config_output   - name: Save THE CONFIG     vars:       ansible_connection: ssh     copy:       src: "{{config_output.backup_path}}"       dest: "/backup/{{inventory_hostname}}"     delegate_to: ansible     become: yes | 
図10 CISCO IOSのコンフィグをバックアップするPlaybookの例
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | - name: retrieve router configurations   hosts: ios   gather_facts: no   tasks:   - name: BACKUP THE CONFIG     ios_config:       backup: yes     register: config_output   - name: REMOVE NON CONFIG LINES - REGEXP     lineinfile:       path: "{{config_output.backup_path}}"       line: "Building configuration..."       state: absent   - name: Save THE CONFIG     vars:       ansible_connection: ssh     copy:       src: "{{config_output.backup_path}}"       dest: "/backup/{{inventory_hostname}}"     delegate_to: ansible     become: yes | 
図11 保存したArista EOSのコンフィグからリストアするPlaybookの例(eos_restore.yml)
| 1 2 3 4 5 6 7 8 9 10 | --- - name: Restore the EOS Config   hosts: eos   gather_facts: no   tasks:   - name: RESTORE THE CONFIG     eos_config:       replace: config       src: "/backup/{{inventory_hostname}}" | 
図12 保存したCisco IOSのコンフィグからリストアするPlaybookの例
| 1 2 3 4 5 6 7 8 9 | --- - name: Restore the IOS Config   hosts: ios   gather_facts: no   tasks:   - name: RESTORE THE CONFIG     ios_config:       src: "/backup/{{inventory_hostname}}" |