Моя основная книга игр, содержащая модуль command_parser, под которым я создал playbook анализатора команд (atomic_update). Выходные данные task1 добавляются в регистр как «runA» и передаются в play_mig_parser commandbook. главная книга воспроизведения:
-
hosts: '{{d1}}'
gather_facts: no
connection: network_cli
tasks:
- name: Task1 - Fetching running configuration of device A
cli_command:
command: show run
register: runA
- hosts: localhost
gather_facts: no
roles:
- ansible-network.network-engine
vars:
runconfA: "{{hostvars[d1]['runA']['stdout']}}"
runconfB: "{{hostvars[d2]['runB']['stdout']}}"
atomic_update_mismatch: false
tasks:
- name: Task3 - Parse Atomic Update from Running config of device A
command_parser:
file: "parser/atomic_update.yaml"
content: "{{ runconfA }}"
- name: Task4 - Save Atomic Update output
set_fact:
atomic_update_deviceA: "{{output}}"
файл atomic_update.yaml:
- name: Match atomic update from running-config
export: yes
pattern_match:
match_all: yes
regex: "^.*\\batomic\\b.*$"
register: output
Эта книга воспроизведения анализатора команд должна возвращать значение «null» в выходную переменную. потому что переключатель, который я использую, не имеет атомарного параметра. Но при запуске главной книги воспроизведения выдается сообщение об ошибке «вывод не определен».