network and serial complete
This commit is contained in:
parent
621d9595f8
commit
84a20416e3
@ -82,4 +82,10 @@ systemd_networkd_configs:
|
|||||||
- 10.192.110.254
|
- 10.192.110.254
|
||||||
|
|
||||||
qemu_bridges:
|
qemu_bridges:
|
||||||
br0
|
- br0
|
||||||
|
|
||||||
|
hypervisor:
|
||||||
|
storage: dir
|
||||||
|
device: /dev/sda
|
||||||
|
|
||||||
|
console_device: ttyS0
|
25
ansible/playbooks/vp2420.yaml
Normal file
25
ansible/playbooks/vp2420.yaml
Normal 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
|
@ -7,6 +7,6 @@ libvirt_packages:
|
|||||||
libvirt
|
libvirt
|
||||||
libvirt-python
|
libvirt-python
|
||||||
|
|
||||||
default_network_services:
|
hypervisor:
|
||||||
Archlinux:
|
storage: dir
|
||||||
NetworkManager
|
device: /dev/sda
|
8
ansible/roles/hypervisor_qcow/tasks/libvirt_dir.yaml
Normal file
8
ansible/roles/hypervisor_qcow/tasks/libvirt_dir.yaml
Normal 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
|
||||||
|
|
||||||
|
|
@ -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)
|
- name: Install libvirt packages (Arch)
|
||||||
when: ansible_os_distribution == 'Archlinux'
|
when: ansible_os_distribution == 'Archlinux'
|
||||||
community.general.pacman:
|
community.general.pacman:
|
||||||
@ -74,3 +38,13 @@
|
|||||||
community.libvirt.virt_net:
|
community.libvirt.virt_net:
|
||||||
name: default
|
name: default
|
||||||
state: absent
|
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
|
||||||
|
5
ansible/roles/serial_out/defaults/main.yaml
Normal file
5
ansible/roles/serial_out/defaults/main.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
console_packages:
|
||||||
|
Archlinux:
|
||||||
|
- util-linux
|
||||||
|
|
||||||
|
console_device: ttyS0
|
6
ansible/roles/serial_out/handlers/main.yaml
Normal file
6
ansible/roles/serial_out/handlers/main.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Run mkinitcpio
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: mkinitcpio -p linux
|
||||||
|
changed_when: true
|
27
ansible/roles/serial_out/tasks/main.yaml
Normal file
27
ansible/roles/serial_out/tasks/main.yaml
Normal 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
|
3
ansible/roles/systemd_networkd/defaults/main.yaml
Normal file
3
ansible/roles/systemd_networkd/defaults/main.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
default_network_services:
|
||||||
|
Archlinux:
|
||||||
|
NetworkManager
|
9
ansible/roles/systemd_networkd/handlers/main.yaml
Normal file
9
ansible/roles/systemd_networkd/handlers/main.yaml
Normal 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
|
39
ansible/roles/systemd_networkd/tasks/main.yaml
Normal file
39
ansible/roles/systemd_networkd/tasks/main.yaml
Normal 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
|
Loading…
Reference in New Issue
Block a user