45 lines
1.7 KiB
YAML
45 lines
1.7 KiB
YAML
# restart-cloud-agent-wrapper.yml
|
|
# Phase 1: Subsystem -> NetBox sync for current inventory_hostname
|
|
# Phase 2: Restart cloud-agent on the device
|
|
|
|
- name: Phase 1 | Subsystem -> NetBox sync before cloud-agent restart
|
|
hosts: all
|
|
gather_facts: no
|
|
tasks:
|
|
- name: "Wrapper | Verify netbox_subsystem_ikejanum_recursive.py exists"
|
|
delegate_to: localhost
|
|
ansible.builtin.stat:
|
|
path: ./netbox_subsystem_ikejanum_recursive.py
|
|
register: subsystem_script
|
|
changed_when: false
|
|
|
|
- name: "Wrapper | Run netbox_subsystem_ikejanum_recursive.py for {{ inventory_hostname }}"
|
|
delegate_to: localhost
|
|
ansible.builtin.shell: |
|
|
set -o pipefail
|
|
python3 -u ./netbox_subsystem_ikejanum_recursive.py "{{ inventory_hostname }}" 2>&1
|
|
args:
|
|
executable: /bin/bash
|
|
register: subsystem_sync
|
|
changed_when: false
|
|
failed_when: false
|
|
when: subsystem_script.stat.exists | default(false)
|
|
|
|
- name: "Wrapper | Show subsystem sync result"
|
|
delegate_to: localhost
|
|
ansible.builtin.debug:
|
|
msg:
|
|
- "script_exists={{ subsystem_script.stat.exists | default(false) }}"
|
|
- "rc={{ subsystem_sync.rc | default('NA') }}"
|
|
- "stdout_lines={{ subsystem_sync.stdout_lines | default([]) }}"
|
|
- "stderr_lines={{ subsystem_sync.stderr_lines | default([]) }}"
|
|
- "raw stdout (joined): {{ subsystem_sync.stdout | default('') }}"
|
|
- "raw stderr (joined): {{ subsystem_sync.stderr | default('') }}"
|
|
when: subsystem_script.stat.exists | default(false)
|
|
|
|
- name: "Wrapper | Abort softly if script missing"
|
|
ansible.builtin.meta: end_host
|
|
when: not (subsystem_script.stat.exists | default(false))
|
|
|
|
- import_playbook: restart-cloud-agent-long.yml
|