1
0

network and serial complete

This commit is contained in:
michael 2023-08-10 23:32:17 +10:00
parent 621d9595f8
commit 84a20416e3
19 changed files with 142 additions and 40 deletions

View File

@ -82,4 +82,10 @@ systemd_networkd_configs:
- 10.192.110.254
qemu_bridges:
br0
- br0
hypervisor:
storage: dir
device: /dev/sda
console_device: ttyS0

View File

@ -0,0 +1,25 @@
---
# Arch install bare metal
# Systemd networking
- name: Setup systemd-networkd
hosts: hv00_balsillie_house
become: true
roles:
- name: systemd_networkd
vars:
ansible_host: # TODO add temp address
# Serial console
- name: Setup serial console
hosts: hv00_balsillie_house
become: true
roles:
- name: serial_console
# Hypervisor setup
# VM setup

View File

@ -7,6 +7,6 @@ libvirt_packages:
libvirt
libvirt-python
default_network_services:
Archlinux:
NetworkManager
hypervisor:
storage: dir
device: /dev/sda

View File

@ -0,0 +1,8 @@
---
- name: Format and mount the libvirt disk if it is not root
when: hypervisor.device not in (ansible_mounts | json_query('[?mount == `/`].device'))
ansible.builtin.include_tasks:
file: libvirt_mount.yaml

View File

@ -1,41 +1,5 @@
---
- name: Clear systemd-networkd config directory
ansible.builtin.file:
path: "/etc/systemd/network/"
state: "{{ item }}"
owner: root
group: root
mode: '0755'
with_items:
- absent
- directory
- name: Create systemd-networkd config files
ansible.builtin.template:
src: "{{ item.src }}"
dest: /etc/systemd/network/"{{ item.name }}"
owner: root
group: root
mode: '0644'
loop: "{{ systemd_networkd_configs }}"
- name: Disable non-systemd networking services
ansible.builtin.service:
name: "{{ item }}"
state: stopped
enabled: false
loop: "{{ default_network_services[ansible_os_family] }}"
- name: Enable systemd networking
ansible.builtin.service:
name: "{{ item }}"
state: started
enabled: true
loop:
- systemd-networkd
- systemd-resolved
- name: Install libvirt packages (Arch)
when: ansible_os_distribution == 'Archlinux'
community.general.pacman:
@ -74,3 +38,13 @@
community.libvirt.virt_net:
name: default
state: absent
- name: Setup libvirt storage (qcow)
when: hypervisor.storage == 'dir'
ansible.builtin.include_tasks:
file: libvirt_dir.yaml
- name: Setup libvirt storage (zfs)
when: hypervisor.storage == 'zfs'
ansible.builtin.include_tasks:
file: libvirt_zfs.yaml

View File

@ -0,0 +1,5 @@
console_packages:
Archlinux:
- util-linux
console_device: ttyS0

View File

@ -0,0 +1,6 @@
---
- name: Run mkinitcpio
ansible.builtin.command:
cmd: mkinitcpio -p linux
changed_when: true

View File

@ -0,0 +1,27 @@
---
# - name: Set serial output for boot loader
- name: Add command line option for mkinitcpio config
when: ansible_distribution == 'Archlinux'
ansible.builtin.copy:
dest: /etc/cmdline.d/console.conf
content: "console={{ console_device }},115200"
owner: root
group: root
mode: '0664'
notify:
- Run mkinitcpio
- name: Install getty provider package (Archlinux)
when: ansible_distribution == 'Archlinux'
community.general.pacman:
name: "{{ console_packages[ansible_os_family] }}"
state: present
update_cache: true
- name: Enable the serial-getty service
ansible.builtin.service:
name: serial-getty@{{ console_device }}.service
enabled: true
state: started

View File

@ -0,0 +1,3 @@
default_network_services:
Archlinux:
NetworkManager

View File

@ -0,0 +1,9 @@
- name: Restart systemd-networkd
ansible.builtin.service:
name: systemd-networkd.service
state: restarted
- name: Restart systemd-resolved
ansible.builtin.service:
name: systemd-resolved.service
state: restarted

View File

@ -0,0 +1,39 @@
---
- name: Clear systemd-networkd config directory
ansible.builtin.file:
path: "/etc/systemd/network/"
state: "{{ item }}"
owner: root
group: root
mode: '0755'
with_items:
- absent
- directory
- name: Create systemd-networkd config files
ansible.builtin.template:
src: "{{ item.src }}"
dest: /etc/systemd/network/"{{ item.name }}"
owner: root
group: root
mode: '0644'
loop: "{{ systemd_networkd_configs }}"
notify:
- Restart systemd-resolved
- Restart systemd-networkd
- name: Disable non-systemd networking services
ansible.builtin.service:
name: "{{ item }}"
state: stopped
enabled: false
loop: "{{ default_network_services[ansible_os_family] }}"
- name: Enable systemd networking
ansible.builtin.service:
name: "{{ item }}"
enabled: true
loop:
- systemd-networkd
- systemd-resolved