diff options
| author | Ahmed Abdelhalim <[email protected]> | 2025-08-11 00:32:00 +0200 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2025-08-11 00:32:00 +0200 |
| commit | 20ab3adb6b08944235c707490449c8906394564f (patch) | |
| tree | 8f0bded9360fde2cb6779d4e8cd50d41a3741c4c /roles/network/tasks | |
| parent | b837d1af24552836cf85a17013ca7b210e1b727c (diff) | |
Add network role
Diffstat (limited to 'roles/network/tasks')
| -rw-r--r-- | roles/network/tasks/install-archlinux.yml | 15 | ||||
| -rw-r--r-- | roles/network/tasks/install-debian.yml | 15 | ||||
| -rw-r--r-- | roles/network/tasks/main.yml | 89 |
3 files changed, 119 insertions, 0 deletions
diff --git a/roles/network/tasks/install-archlinux.yml b/roles/network/tasks/install-archlinux.yml new file mode 100644 index 00000000..94384c5a --- /dev/null +++ b/roles/network/tasks/install-archlinux.yml @@ -0,0 +1,15 @@ +--- +- name: "Ensure network_packages are installed" + become: true + community.general.pacman: + name: "{{ network_packages }}" + state: "present" + tags: [required_for_boot] + +- name: "Ensrue network_packages_removed are removed" + become: true + community.general.pacman: + name: "{{ network_packages_removed }}" + state: "absent" + extra_args: "-n" # Removes config files too + # Not required for boot diff --git a/roles/network/tasks/install-debian.yml b/roles/network/tasks/install-debian.yml new file mode 100644 index 00000000..057a4d0f --- /dev/null +++ b/roles/network/tasks/install-debian.yml @@ -0,0 +1,15 @@ +--- +- name: "Ensure network_packages are installed" + become: true + ansible.builtin.apt: + pkg: "{{ network_packages }}" + state: "present" + tags: [required_for_boot] + +- name: "Ensrue network_packages_removed are removed" + become: true + ansible.builtin.apt: + name: "{{ network_packages_removed }}" + state: "absent" + purge: true + # Not required for boot diff --git a/roles/network/tasks/main.yml b/roles/network/tasks/main.yml new file mode 100644 index 00000000..44a9e300 --- /dev/null +++ b/roles/network/tasks/main.yml @@ -0,0 +1,89 @@ +--- +- name: "Configure /etc/hostname" + become: true + ansible.builtin.copy: + dest: "/etc/hostname" + mode: "0644" + content: | + {{ hostname }} + when: hostname is defined + tags: [required_for_boot] + +- name: "Configure /etc/hosts" + become: true + ansible.builtin.copy: + dest: "/etc/hosts" + mode: "0644" + content: | + 127.0.0.1 localhost + 127.0.1.1 {{ hostname }} + ::1 localhost ip6-localhost ip6-loopback + ff02::1 ip6-allnodes + ff02::2 ip6-allrouters + when: hostname is defined + # Not required for boot + +- name: "Include OS-specific variables" + ansible.builtin.include_vars: "{{ ansible_os_family | lower }}.yml" + tags: [required_for_boot] + +- name: "Install OS-specific packages" + ansible.builtin.include_tasks: "install-{{ ansible_os_family | lower }}.yml" + tags: [required_for_boot] + +- name: "(chroot): Ensure network_services are enabled" + ansible.builtin.command: + cmd: "systemctl enable {{ item }}" + changed_when: true + with_items: "{{ network_services }}" + when: ansible_is_chroot + # noqa: command-instead-of-module module doesn't work inside chroot + tags: [required_for_boot] + +- name: "Ensure network_services are enabled" + become: true + ansible.builtin.systemd_service: + name: "{{ item }}" + enabled: true + state: "started" + with_items: "{{ network_services }}" + when: not ansible_is_chroot + # Not required for boot + +- name: "Configure NetworkManager" + become: true + tags: [required_for_boot] + notify: + - "Restart NetworkManager" + - "Reload systemd" + block: + - name: "Configure NetworkManager" + ansible.builtin.template: + src: "NetworkManager.conf.j2" + dest: "/etc/NetworkManager/NetworkManager.conf" + mode: "0644" + + - name: "Configure NetworkManager Captive Portals" + ansible.builtin.get_url: + dest: "/etc/NetworkManager/dispatcher.d/90-open_captive_portal" + # yamllint disable-line + url: "https://raw.githubusercontent.com/Seme4eg/captive-portal-sh/04751034437b6abd92647cab1b22cef586c86f4e/90-open_captive_portal" + checksum: "sha1:75f4c827939e7dd433357ab4776c787be02c485b" + mode: "0750" + + - name: "Configure ethernet connection" + ansible.builtin.template: + src: "eth0-connection.nmconnection.j2" + dest: "/etc/NetworkManager/system-connections/ethernet.nmconnection" + mode: "0600" + owner: "root" + group: "root" + + - name: "Configure wifi connection" + ansible.builtin.template: + src: "wifi-connection.nmconnection.j2" + dest: "/etc/NetworkManager/system-connections/{{ network_wifi_ssid }}.nmconnection" + mode: "0600" + owner: "root" + group: "root" + when: network_wifi_ssid != "" |
