infra/ansible/roles/general/tasks/debian/network.yml
Graham McIntire fb5803c866
add FreeBSD bootstrap, irc servers, hostname overrides, and cleanups
- bootstrap.yml: support pkg for FreeBSD sudo/python3 install
- base role: FreeBSD package sets, sudoers paths, host key regen, admin group, usermod process-in-use tolerance
- freebsd role: pkg update/upgrade tasks
- general role: standalone hostname tasks (ungated from network.skip), hostname_override support
- inspircd role: deploy configs for ca/us manero.org irc servers with vault-backed secrets
- uisp role: download and run installer on fresh hosts, skip if already running
- netbox role: stop services before usermod to avoid process-in-use failures
- hosts: add irc_servers group, ca/us.manero.org (Tailscale), drop staging.towerops.net
- all.yml: graham user gets static ed25519 key alongside github keys
2026-06-19 17:19:29 -05:00

112 lines
3.5 KiB
YAML

#- name: "Create base network configuration"
# copy:
# src: files/etc/network/interfaces
# dest: /etc/network/interfaces
# owner: root
# group: root
# mode: 00644
# tags:
# - network_interfaces
- name: "Create systemd interface files"
ansible.builtin.template:
src: templates/etc/systemd/network/link.j2
dest: "/etc/systemd/network/10-{{ interface.name }}-nic.link"
owner: root
group: root
mode: '0644'
loop: "{{ interfaces }}"
loop_control:
loop_var: interface
vars:
interfaces: "{{ network.interfaces | default([]) | selectattr('bridge', 'undefined') }}"
register: network_systemd_interface
tags:
- network_systemd_interface
when: network.skip | default(False) != True
- name: "Build split network configuration (interfaces)"
ansible.builtin.template:
src: templates/etc/network/interfaces.d/interface.j2
dest: "/etc/network/interfaces.d/{{ interface.name }}"
owner: root
group: root
mode: '0644'
loop: "{{ interfaces }}"
loop_control:
loop_var: interface
vars:
interfaces: "{{ network.interfaces | default([]) }}"
interface_network: "{{ interface.network | default(False) }}"
register: network_interfaces_split
when: network.skip | default(False) != True and network.single_file | default(False) == False
tags:
- network_interfaces
- name: "Build split network configuration (main)"
ansible.builtin.template:
src: templates/etc/network/interfaces.j2
dest: "/etc/network/interfaces"
owner: root
group: root
mode: '0644'
vars:
interfaces: "{{ [] }}"
register: network_interfaces_split_main
when: network.skip | default(False) != True and network.single_file | default(False) == False
tags:
- network_interfaces
- name: "Build combined network configuration"
ansible.builtin.template:
src: templates/etc/network/interfaces.j2
dest: "/etc/network/interfaces"
owner: root
group: root
mode: '0644'
vars:
interfaces: "{{ network.interfaces | default([]) }}"
register: network_interfaces_single
when: network.skip | default(False) != True and network.single_file | default(False) == True
tags:
- network_interfaces
- name: "Remove split network configuration files"
ansible.builtin.file:
path: "/etc/network/interfaces.d/{{ interface.name }}"
state: absent
loop: "{{ interfaces }}"
loop_control:
loop_var: interface
vars:
interfaces: "{{ network.interfaces | default([]) }}"
interface_network: "{{ interface.network | default(False) }}"
register: network_interfaces_split_removed
when: network.skip | default(False) != True and network.single_file | default(False) == True
tags:
- network_interfaces
- name: "Restart networking"
ansible.builtin.systemd:
name: networking
daemon_reload: true
state: restarted
when: network.skip | default(False) != True and (network_systemd_interface.changed or network_interfaces_split.changed or network_interfaces_split_main.changed or network_interfaces_single.changed or network_interfaces_split_removed.changed)
tags:
- network_restart
- name: "Configure /etc/resolv.conf"
ansible.builtin.template:
src: templates/etc/resolv.conf.j2
dest: /etc/resolv.conf
owner: root
group: root
mode: '0644'
follow: yes
vars:
domain: "{{ network.domain | default('local') }}"
search_domains: "{{ network.search_domains | default([domain]) }}"
nameservers: "{{ network.nameservers | default(['9.9.9.9', '149.112.112.112']) }}"
when: network.skip | default(False) != True
tags:
- network_resolv_conf