From 457fb3517a5af87df9b3ef8296bf11eb6a1b6e27 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Fri, 21 Feb 2025 15:44:52 +0100 Subject: [PATCH] feat(network): Create separate networking playbook --- host.yaml | 31 +++++++++++++++---------------- play.yaml | 3 +++ void_network.yaml | 24 ++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 16 deletions(-) create mode 100644 void_network.yaml diff --git a/host.yaml b/host.yaml index 11bb730..ea1fb00 100644 --- a/host.yaml +++ b/host.yaml @@ -12,8 +12,21 @@ # community.general.btrfs_subvolume: # state: present # name: "/@" -# filesystem_uuid: "{{ btrfs_target }}" - + # filesystem_uuid: "{{ btrfs_root_uuid }}" + # # - name: Mount /boot part into voidroot mount + # - name: Mount btrfs subvol into mountdir + # vars: + # boot_dev_uuid: + # ansible.posix.mount: + # src: "{{ item.src }}" + # path: "{{ item.path }}" + # fstype: "{{ item.fstype }}" + # state: mounted + # with_items: + # - { fstype: 'ext4', src: '/dev/mapper/{{ vgname }}-root', path: '{{ mount_dir }}/' } + # # TODO: should take opts from fstab. Definitely needs 'boot' type option + # - { fstype: 'vfat', src: '/dev/disk/by-uuid/{{ boot_dev_uuid }}', path: '{{ mount_dir }}/boot' } + - name: Create voidlinux guest hosts: host become: true @@ -28,17 +41,3 @@ dest: "{{ mount_dir }}" # ONLY run if this file does not exist (could use any rootfs file to check) creates: "{{ mount_dir }}/etc/os-release" - - # - name: Mount /boot part into voidroot mount - - # TODO: Should be removed again at the end? - # However only after the whole PLAYBOOK has run not after this play - # not sure how to accomplish, see - # https://newbe.dev/run-an-ansible-handler-only-once-for-the-entire-playbook - # for possible solutions (especially lowest, hosts_to_restart example) - - name: Use archlinux resolvd for network access - ansible.builtin.file: - path: "{{ mount_dir }}/etc/resolv.conf" - state: touch - - diff --git a/play.yaml b/play.yaml index 13eb110..4e7b1b2 100644 --- a/play.yaml +++ b/play.yaml @@ -15,6 +15,9 @@ - name: Import chroot void base tasks ansible.builtin.import_playbook: void_base.yaml +- name: Import chroot void network tasks + ansible.builtin.import_playbook: void_network.yaml + - name: Import chroot user management tasks ansible.builtin.import_playbook: void_user.yaml diff --git a/void_network.yaml b/void_network.yaml new file mode 100644 index 0000000..7ff31fd --- /dev/null +++ b/void_network.yaml @@ -0,0 +1,24 @@ +- name: Set up voidlinux networking + hosts: guest + become: true + vars: + ansible_chroot_exe: arch-chroot + nameserver1: 9.9.9.9 + nameserver2: 9.9.9.10 + tasks: + - name: Configure resolv DNS + ansible.builtin.copy: + mode: 0644 + dest: "/etc/resolv.conf" + content: | + nameserver {{ nameserver1 }} + nameserver {{ nameserver2 }} + failed_when: false # can't ever fail + + - name: Activate dhcp service + ansible.builtin.file: + force: 'yes' + src: "/etc/sv/{{ item }}" + dest: "/etc/runit/runsvdir/default/{{ item }}" + state: link + with_items: [ dhcpcd ]