Homelab-Infra/roles/container_runtime/tasks/main.yml

64 lines
1.6 KiB
YAML

#container_runtime/tasks/main.yml
- name: Install required base packages
become: true
dnf:
name: "{{ item }}"
state: present
loop: "{{ base_runtime_install_packages }}"
- name: Enable lingering for rootless containers
become: true
command: "loginctl enable-linger {{ container_user }}"
args:
creates: "/var/lib/systemd/linger/{{ container_user }}"
- name: Allow rootless to bind to low ports
become: true
sysctl:
name: net.ipv4.ip_unprivileged_port_start
value: '53'
state: present
- name: Create stack directories
file:
path: "{{ item }}"
state: directory
owner: "{{ container_user }}"
group: "{{ container_group }}"
mode: "0755"
recurse: yes
loop:
- "{{ stack_root }}"
- "{{ container_config_dir }}"
- name: Configure SELinux container policies
ansible.builtin.import_tasks: ../selinux_containers/tasks/main.yml
- name: Deploy Podman Network Quadlet
become: true
template:
src: homelab.network.j2
dest: "{{ container_config_dir }}/homelab.network"
mode: "0644"
owner: "{{ container_user }}"
group: "{{ container_group }}"
#- name: Force systemd reload (blocking)
# become: true
# become_user: "{{ container_user }}"
# command: systemctl --user daemon-reload
- name: Force systemd reload (blocking)
become: true
become_user: "{{ container_user }}"
environment:
XDG_RUNTIME_DIR: "{{ container_runtime_dir }}"
command: systemctl --user daemon-reload
- name: Start homelab network
become: true
become_user: "{{ container_user }}"
systemd:
name: homelab-network.service
scope: user
state: started