Manage maintenance mode on Arista EOS with Ansible

- name: Manage maintenance mode
hosts: all
gather_facts: false
tasks:
# Enable
- name: Check maintenance mode
arista.eos.eos_command:
commands: show maintenance | json
register: maintenance_mode_check_before_output
- name: Enable maintenance mode
when: >
maintenance_mode_check_before_output.stdout[0].units.System.adminState != 'underMaintenance'
and
maintenance_mode_check_before_output.stdout[0].units.System.state != 'underMaintenance'
arista.eos.eos_config:
lines:
- quiesce
parents:
- maintenance
- unit System
save_when: changed
- name: Wait for full maintenance mode
arista.eos.eos_command:
commands: show maintenance | json
register: result
until: >
result.stdout[0].units.System.adminState == 'underMaintenance'
and
result.stdout[0].units.System.state == 'underMaintenance'
retries: 36 # 36 × 10s = 360s max wait time. Arista default is 300 seconds.
delay: 10
changed_when: false
# Disable
- name: Check maintenance mode
arista.eos.eos_command:
commands: show maintenance | json
register: maintenance_mode_check_after_output
- name: Disable maintenance mode
when: maintenance_mode_check_after_output.stdout[0].units.System.adminState == 'underMaintenance'
arista.eos.eos_config:
lines:
- no quiesce
parents:
- maintenance
- unit System
save_when: changed

Leave a comment