著者:平田 千浩
「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}}" |