refactor: Use alvistack repository

This commit is contained in:
pulsar89.5 2024-06-08 01:51:45 +02:00
parent b9a6f018e0
commit b11570c069
4 changed files with 38 additions and 97 deletions

View File

@ -1,38 +1,36 @@
---
# tasks file for podman
- name: Créer l'utilisateur dédié
ansible.builtin.include_role:
name: users
vars:
users:
- name: "{{ container_user }}"
comment: Dedicated Podman user ({{ container.name }})
update_password: on_create
password_lock: true
system: true
shell: /bin/bash
- name: Activer le lingering
ansible.builtin.command:
cmd: "loginctl enable-linger {{ container_user }}"
creates: /var/lib/systemd/linger/{{ container_user }}
become: true
loop: "{{ podman_containers }}"
loop_control:
label: "{{ item.name }}"
vars:
container_user: "podman-{{ item.user | default(item.name) }}"
- name: Create a Quadlet file
containers.podman.podman_container:
hostname: "{{ container.hostname | default(inventory_hostname) }}"
name: "{{ container.name }}"
image: "{{ container.image }}"
hostname: "{{ item.hostname | default(inventory_hostname) }}"
name: "{{ item.name }}"
image: "{{ item.image }}"
state: quadlet
device: "{{ container.device | default(omit) }}"
ports: "{{ container.ports | default(omit) }}"
volumes: "{{ container.volumes | default(omit) }}"
userns: "{{ container.userns | default(omit) }}"
mount: "{{ container.mount | default(omit) }}"
publish: "{{ container.publish | default(omit) }}"
env: "{{ container.env | default(omit) }}"
quadlet_options: "{{ container.quadlet_options | default(omit) }}"
device: "{{ item.device | default(omit) }}"
ports: "{{ item.ports | default(omit) }}"
volumes: "{{ item.volumes | default(omit) }}"
userns: "{{ item.userns | default(omit) }}"
mount: "{{ item.mount | default(omit) }}"
publish: "{{ item.publish | default(omit) }}"
env: "{{ item.env | default(omit) }}"
quadlet_options: "{{ item.quadlet_options | default(omit) }}"
recreate: true
become: true
become_user: "{{ container_user }}"
loop: "{{ podman_containers }}"
loop_control:
label: "{{ item.name }}"
vars:
container_user: "podman-{{ item.user | default(item.name) }}"

View File

@ -1,29 +1,30 @@
---
# tasks file for podman
- name: Installer les pré-requis
- name: Installer les paquets
ansible.builtin.apt:
name:
- dbus-user-session
- rootlesskit
- slirp4netns
- containernetworking-dnsname
- containernetworking-plugins
- containernetworking-podman-machine
- dbus-user-session
- passt
- podman
- podman-aardvark-dns
- podman-docker
- podman-gvproxy
- podman-netavark
- python3-podman-compose
- uidmap
- systemd-container
install_recommends: true
state: present
become: true
notify:
- Redémarrer l'instance
- Attendre que le port SSH soit ouvert
- name: Installer podman
ansible.builtin.apt:
name: podman
state: present
default_release: sid
become: true
notify:
- Redémarrer l'instance
- Attendre que le port SSH soit ouvert
- name: Exécuter les handlers
ansible.builtin.meta: flush_handlers

View File

@ -4,15 +4,7 @@
- name: Importer les tâches d'installation
ansible.builtin.import_tasks:
file: installation.yml
tags: installation
- name: Importer les tâches de configuration
ansible.builtin.include_tasks:
ansible.builtin.import_tasks:
file: configuration.yml
loop: "{{ podman_containers }}"
loop_control:
label: "{{ container.name }}"
loop_var: container
vars:
container_user: "podman-{{ container.user | default(container.name) }}"
tags: configuration

View File

@ -1,50 +0,0 @@
# {{ ansible_managed }}
[Unit]
Description=Podman container: {{ container.name }}
{% for extra in container.get('unit_extras', []) %}
{{ extra }}
{% endfor %}
[Container]
HostName={{ inventory_hostname }}
Image={{ container.image }}
ContainerName={{ container.name }}
{% if container.get('userns', '') | length > 0 %}
UserNS={{ container.userns }}
{% endif %}
AutoUpdate=registry
{% for cmd in container.get('commands', []) %}
Exec={{ cmd }}
{% endfor %}
{% for volume in container.get('volumes', []) %}
Volume={{ volume }}
{% endfor %}
{% for mount in container.get('mounts', []) %}
{% if mount.get('options', []) | length > 0 %}
Mount=type={{ mount.type }},src={{ mount.source }},dst={{ mount.destination }},{{ mount.options | join(',') }}
{% else %}
Mount=type={{ mount.type }},src={{ mount.source }},dst={{ mount.destination }}
{% endif %}
{% endfor %}
{% for port in container.get('ports', []) %}
PublishPort={{ port }}
{% endfor %}
{% for environment in container.get('environment_vars', []) %}
Environment={{ environment.keys() | first }}={{ environment.values() | first }}
{% endfor %}
[Service]
Restart=on-failure
TimeoutStartSec=900
[Install]
WantedBy=default.target