구성이 누락된 경우에만 레지스트리 출력에서 문자열을 검색하여 네트워크 장치의 구성을 푸시하고 싶습니다. 먼저 이 작업을 실행하여 대상 장치에서 실행 중인 구성을 기록합니다.
# Collect information about the available configuration
- name: Execute show command
cisco.ios.ios_command:
commands:
- show runn | in repository ## to find if the repository is already configured
register: output
출력 레지스터를 사용하여 다음 작업을 조건부로 실행하고 싶습니다.
- name: Push repository configuration
cisco.ios.ios_command:
commands:
- conf t
- repository MAIN
- url ftp://{{ repository_main }}
- user {{ repository_main_user}} password plain {{ repository_main_password }}
- exit
- repository SECONDARY
- url ftp://{{ repository_sec }}/
- user {{ repository_sec_user}} password plain {{ repository_sec_password }}
- end
when: 'not "MAIN" in {{ output.stdout }} and not "SECONDARY" in {{ output.stdout }}'
Output.stdout은 다음과 같습니다.
TASK [print output] ************************************************************
Saturday 19 November 2022 06:45:44 +0000 (0:00:06.370) 0:00:06.409 *****
ok: [node1] =>
msg:
- |-
repository MAIN
--
repository SECONDARY
네트워크 장치에서 ansible 사용자의 세션을 확인할 때 저장소를 다시 구성하는 것을 볼 수 있는데 이는 내가 원하는 것이 아닙니다. 이를 어떻게 제어할 수 있습니까? 실제로 stdout은 여러 줄 출력의 요소입니까?
답변1
수리 조건
when:
- "'MAIN' not in output.stdout"
- "'SECONDARY' not in output.stdout"
시험을 받다
- hosts: localhost
tasks:
- debug:
msg: OK
when:
- "'MAIN' not in output.stdout"
- "'SECONDARY' not in output.stdout"
vars:
output:
stdout: XY
- debug:
msg: OK
when:
- "'MAIN' not in output.stdout"
- "'SECONDARY' not in output.stdout"
vars:
output:
stdout: XY MAIN
- debug:
msg: OK
when:
- "'MAIN' not in output.stdout"
- "'SECONDARY' not in output.stdout"
vars:
output:
stdout: XY SECONDARY
주어진
PLAY [localhost] *****************************************************************************
TASK [debug] *********************************************************************************
ok: [localhost] =>
msg: OK
TASK [debug] *********************************************************************************
skipping: [localhost]
TASK [debug] *********************************************************************************
skipping: [localhost]
PLAY RECAP ***********************************************************************************
localhost: ok=1 changed=0 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0