With this change we no longer use user-data scripts on the provided machines. That makes it way easier for me to handle all the configuration, since I only have to run ansible. Furthermore this the burdon to think what may went wrong, since ansible is easier to debug than some arbitrary scripts which run at provisioning-time on the machines. With this change I should also think about restructuring the code a bit as well. Since it's actually easier to provide the initial software-stack for the cluster via ansible than via terraform, at least as far as I can tell right now.
30 lines
798 B
YAML
30 lines
798 B
YAML
- name: Set default network route
|
|
shell: "ip route add default via {{ private_nat }}"
|
|
ignore_errors: "yes"
|
|
when: ansible_facts['default_ipv4']['alias'] is not defined
|
|
|
|
- name: Regather facts
|
|
setup:
|
|
when: ansible_facts['default_ipv4']['alias'] is not defined
|
|
|
|
- name: Gather fact target_nic
|
|
set_fact:
|
|
target_nic: "{{ ansible_facts['default_ipv4']['alias'] }}"
|
|
|
|
- name: Ensure path to configure default route
|
|
file:
|
|
path: "{{ network_config_path }}"
|
|
state: directory
|
|
|
|
- name: Configure default route
|
|
template:
|
|
src: nic.network.j2
|
|
dest: "{{ network_config_path }}/10-{{target_nic}}.network"
|
|
|
|
- name: Configure DNS servers
|
|
lineinfile:
|
|
path: /etc/systemd/resolved.conf
|
|
regexp: '^#?\s*DNS\s*=.*'
|
|
line: "DNS={{ dns_servers }}"
|
|
notify: "Restart resolved"
|