64 lines
2.2 KiB
YAML
64 lines
2.2 KiB
YAML
---
|
|
- hosts: primary
|
|
environment:
|
|
KAYOBE_CONFIG_SOURCE_PATH: "{{ kayobe_config_src_dir }}"
|
|
tasks:
|
|
# NOTE(mgoddard): Use the name zz-overrides.yml to ensure this takes
|
|
# precedence over the standard config files.
|
|
- name: Ensure kayobe-config override config file exists
|
|
template:
|
|
src: overrides.yml.j2
|
|
dest: "{{ kayobe_config_src_dir }}/etc/kayobe/zz-overrides.yml"
|
|
|
|
- name: Ensure seed group variables exist
|
|
template:
|
|
src: seed-group-vars.j2
|
|
dest: "{{ kayobe_config_src_dir }}/etc/kayobe/inventory/group_vars/seed/network-interfaces"
|
|
|
|
# NOTE(mgoddard): The kayobe dev config by default expects a bridge -
|
|
# braio - to exist with an IP address of 192.168.33.4.
|
|
- name: Ensure all-in-one network bridge interface exists
|
|
command: "{{ item }}"
|
|
become: true
|
|
with_items:
|
|
- "ip l add braio type bridge"
|
|
- "ip l set braio up"
|
|
- "ip a add 192.168.33.4/24 dev braio"
|
|
# NOTE(mgoddard): CentOS 8 removes interfaces from their bridge during
|
|
# ifdown, and removes the bridge if there are no interfaces left. When
|
|
# Kayobe bounces veth links plugged into the bridge, it causes the
|
|
# bridge which has the IP we are using for SSH to be removed. Use a
|
|
# dummy interface.
|
|
- "ip l add dummy1 type dummy"
|
|
- "ip l set dummy1 up"
|
|
- "ip l set dummy1 master braio"
|
|
|
|
# NOTE(mgoddard): Configure IP forwarding and NAT to allow communication
|
|
# from the seed VM to the outside world.
|
|
|
|
# FIXME(mgoddard): use a libvirt network?
|
|
- name: Ensure NAT is configured
|
|
iptables:
|
|
chain: POSTROUTING
|
|
table: nat
|
|
out_interface: "{{ ansible_default_ipv4.interface }}"
|
|
jump: MASQUERADE
|
|
become: true
|
|
|
|
# FIXME(mgoddard): use a libvirt network?
|
|
- name: Ensure IP forwarding is enabled
|
|
sysctl:
|
|
name: net.ipv4.conf.all.forwarding
|
|
value: 1
|
|
become: true
|
|
|
|
- name: Ensure SELinux is disabled
|
|
selinux:
|
|
state: disabled
|
|
become: True
|
|
|
|
- name: Ensure kayobe is installed
|
|
shell:
|
|
cmd: dev/install.sh &> {{ logs_dir }}/ansible/install
|
|
chdir: "{{ kayobe_src_dir }}"
|