Remake Ansible playbook to target MikroTik router
Basically, I've exported configuration from Mikrotik router using /export and vibe-coded playbook using the file.
This commit is contained in:
46
ansible/tasks/preflight.yml
Normal file
46
ansible/tasks/preflight.yml
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
- name: Verify API connectivity and fetch basic facts
|
||||
community.routeros.api_facts:
|
||||
gather_subset:
|
||||
- default
|
||||
- hardware
|
||||
|
||||
- name: Show target identity
|
||||
ansible.builtin.debug:
|
||||
msg: "Managing {{ ansible_host }} ({{ ansible_facts['net_model'] | default('unknown model') }})"
|
||||
|
||||
- name: Assert expected router model
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- ansible_facts['net_model'] is defined
|
||||
- ansible_facts['net_model'] == "CRS418-8P-8G-2S+"
|
||||
fail_msg: "Unexpected router model: {{ ansible_facts['net_model'] | default('unknown') }}"
|
||||
success_msg: "Router model matches expected CRS418-8P-8G-2S+"
|
||||
|
||||
- name: Read RouterOS device-mode flags
|
||||
community.routeros.api:
|
||||
path: system/device-mode
|
||||
register: routeros_device_mode
|
||||
check_mode: false
|
||||
changed_when: false
|
||||
|
||||
- name: Assert container feature is enabled in device mode
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- not (routeros_device_mode.skipped | default(false))
|
||||
- (routeros_device_mode | to_nice_json | lower) is search('container[^a-z0-9]+(yes|true)')
|
||||
fail_msg: "RouterOS device-mode does not report container as enabled. Payload: {{ routeros_device_mode | to_nice_json }}"
|
||||
success_msg: "RouterOS device-mode confirms container=yes"
|
||||
|
||||
- name: Read configured disks
|
||||
community.routeros.api_info:
|
||||
path: disk
|
||||
register: routeros_disks
|
||||
check_mode: false
|
||||
|
||||
- name: Assert usb1 disk is present
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- (routeros_disks.result | selectattr('slot', 'equalto', 'usb1') | list | length) > 0
|
||||
fail_msg: "Required disk slot usb1 is not present on router."
|
||||
success_msg: "Required disk usb1 is present"
|
||||
Reference in New Issue
Block a user