150 lines
3.5 KiB
YAML
150 lines
3.5 KiB
YAML
---
|
|
- name: provision gateway
|
|
hosts: gateways
|
|
tasks:
|
|
- name: configure routing tables
|
|
copy:
|
|
src: "{{ item }}"
|
|
dest: /etc/iproute2/
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
with_fileglob:
|
|
- "templates/gateways/{{ inventory_hostname }}/etc/iproute2/*"
|
|
notify:
|
|
- reload network
|
|
|
|
- name: provision /etc/config
|
|
template:
|
|
src: "{{ item }}"
|
|
dest: /etc/config/
|
|
owner: root
|
|
group: root
|
|
mode: 0600
|
|
with_fileglob:
|
|
- "templates/gateways/base/etc/config/*"
|
|
- "templates/gateways/{{ inventory_hostname }}/etc/config/*"
|
|
notify:
|
|
- "reload {{ item | basename }}"
|
|
|
|
- name: configure frr
|
|
template:
|
|
src: "{{ item }}"
|
|
dest: /etc/frr/
|
|
owner: root
|
|
group: root
|
|
mode: 0600
|
|
with_fileglob:
|
|
- "templates/gateways/base/etc/frr/*"
|
|
- "templates/gateways/{{ inventory_hostname }}/etc/frr/*"
|
|
notify:
|
|
- restart frr
|
|
|
|
- name: install lldpd
|
|
opkg:
|
|
name: lldpd
|
|
update_cache: yes
|
|
|
|
handlers:
|
|
- name: reload dhcp
|
|
service:
|
|
name: dnsmasq
|
|
state: reloaded
|
|
|
|
- name: reload firewall
|
|
service:
|
|
name: firewall
|
|
state: reloaded
|
|
|
|
- name: reload network
|
|
service:
|
|
name: network
|
|
state: reloaded
|
|
|
|
- name: reload prometheus-node-exporter-lua
|
|
service:
|
|
name: prometheus-node-exporter-lua
|
|
state: reloaded
|
|
|
|
- name: reload system
|
|
service:
|
|
name: system
|
|
state: reloaded
|
|
|
|
- name: restart frr
|
|
service:
|
|
name: frr
|
|
state: restarted
|
|
|
|
- name: reload lldpd
|
|
service:
|
|
name: lldpd
|
|
state: reloaded
|
|
|
|
- name: custom changes for ffl-ans-gw-core01 (offloader vm, ...)
|
|
hosts: ffl-ans-gw-core01
|
|
tasks:
|
|
- name: install qemu packages
|
|
opkg:
|
|
name:
|
|
- kmod-tun
|
|
- qemu-x86_64-softmmu
|
|
- kmod-kvm-intel
|
|
update_cache: yes
|
|
|
|
- name: provision /usr/lib
|
|
template:
|
|
src: "{{ item }}"
|
|
dest: /usr/lib
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
with_fileglob:
|
|
- "templates/gateways/{{ inventory_hostname }}/usr/lib/*"
|
|
|
|
- name: provision /etc/init.d
|
|
template:
|
|
src: "{{ item }}"
|
|
dest: /etc/init.d/
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
with_fileglob:
|
|
- "templates/gateways/{{ inventory_hostname }}/etc/init.d/*"
|
|
|
|
- name: preserve custom changes on config backups
|
|
blockinfile:
|
|
path: /etc/sysupgrade.conf
|
|
marker_begin: "BEGIN OFFLOADER"
|
|
marker_end: "END OFFLOADER"
|
|
block: |
|
|
/etc/init.d/qemu-offloader
|
|
/usr/lib/offloader_vm_net_up
|
|
|
|
- name: enable offloader vm service
|
|
service:
|
|
name: qemu-offloader
|
|
state: started
|
|
enabled: True
|
|
|
|
- name: add notes about custom offloader in banner
|
|
copy:
|
|
dest: /etc/profile.d/01_offloader_banner.sh
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
content: |
|
|
cat << EOB
|
|
DISCLAIMER:
|
|
===========
|
|
There is a FFL/FFDD offloader running on this machine
|
|
via qemu.
|
|
|
|
service qemu-offloader status
|
|
|
|
to be cleaned up:
|
|
- let procd gracefully kill the vm on stop/shutdown
|
|
- remove network hook /usr/lib/offloader_vm_net_up
|
|
-----------------------------------------------------
|
|
EOB
|