44 lines
1.2 KiB
YAML
44 lines
1.2 KiB
YAML
- name: "Base server setup"
|
|
hosts: routers
|
|
vars_files:
|
|
- ./config/{{ inventory_hostname }}.yaml
|
|
- ./config/common.yaml
|
|
gather_facts: false
|
|
tasks:
|
|
- name: Create a list of unique import values
|
|
set_fact:
|
|
unique_imports: "{{ peers | map(attribute='import') | unique | list }}"
|
|
when: peers is defined
|
|
|
|
- name: Display unique import values
|
|
debug:
|
|
var: unique_imports
|
|
when: peers is defined
|
|
|
|
- name: Ensure filters directory is present on ansible machine
|
|
delegate_to: localhost
|
|
ansible.builtin.file:
|
|
name: tmp/filters
|
|
state: directory
|
|
mode: '0750'
|
|
when: peers is defined
|
|
|
|
- name: Create filters
|
|
delegate_to: localhost
|
|
ansible.builtin.command:
|
|
cmd: "bgpq4 -6 -A -b -l gen_filter_{{ item }} {{ item }}"
|
|
changed_when: false
|
|
when: peers is defined and unique_imports is not none
|
|
loop: "{{ unique_imports }}"
|
|
register: bgpq4_output
|
|
|
|
- name: Write filters to file
|
|
delegate_to: localhost
|
|
loop: "{{ bgpq4_output.results }}"
|
|
ansible.builtin.copy:
|
|
content: "{{ item.stdout }}"
|
|
dest: "tmp/filters/gen_filter_{{ item.item }}"
|
|
mode: '0640'
|
|
when: peers is defined
|
|
no_log: true
|