You've already forked role_podman
							
							feat: Use ansible module for podman
This commit is contained in:
		| @@ -3,6 +3,9 @@ | |||||||
|  |  | ||||||
| podman_configure_rsyslog: true | podman_configure_rsyslog: true | ||||||
|  |  | ||||||
|  | podman_ssh_host: "{{ inventory_hostname }}" | ||||||
|  | podman_ssh_port: 22 | ||||||
|  |  | ||||||
| podman_containers: [] | podman_containers: [] | ||||||
| # Exemple: | # Exemple: | ||||||
| #  - image: docker.io/wallabag/wallabag:latest | #  - image: docker.io/wallabag/wallabag:latest | ||||||
|   | |||||||
| @@ -1,6 +1,20 @@ | |||||||
| --- | --- | ||||||
| # handlers file for exim4 | # handlers file for exim4 | ||||||
|  |  | ||||||
|  | - name: Redémarrer l'instance | ||||||
|  |   ansible.builtin.reboot: | ||||||
|  |   become: true | ||||||
|  |  | ||||||
|  | - name: Attendre que le port SSH soit ouvert | ||||||
|  |   ansible.builtin.wait_for: | ||||||
|  |     host: "{{ podman_ssh_host }}" | ||||||
|  |     port: "{{ podman_ssh_port }}" | ||||||
|  |     search_regex: OpenSSH | ||||||
|  |     delay: 30 | ||||||
|  |     timeout: 900 | ||||||
|  |     sleep: 10 | ||||||
|  |   delegate_to: 127.0.0.1 | ||||||
|  |  | ||||||
| - name: Redémarrer rsyslog.service | - name: Redémarrer rsyslog.service | ||||||
|   ansible.builtin.systemd: |   ansible.builtin.systemd: | ||||||
|     state: restarted |     state: restarted | ||||||
|   | |||||||
| @@ -10,39 +10,23 @@ | |||||||
|         comment: Dedicated Podman user ({{ container.name }}) |         comment: Dedicated Podman user ({{ container.name }}) | ||||||
|         update_password: on_create |         update_password: on_create | ||||||
|         password_lock: true |         password_lock: true | ||||||
|  |         system: true | ||||||
|         shell: /bin/bash |         shell: /bin/bash | ||||||
|  |  | ||||||
| - name: Créer le chemin de stockage des définitions | - name: Create a Quadlet file | ||||||
|   ansible.builtin.file: |   containers.podman.podman_container: | ||||||
|     path: "{{ container_basepath }}" |     hostname: "{{ container.hostname | default(inventory_hostname) }}" | ||||||
|     state: directory |     name: "{{ container.name }}" | ||||||
|     owner: "{{ container_user }}" |     image: "{{ container.image }}" | ||||||
|     group: "{{ container_user }}" |     state: quadlet | ||||||
|     mode: u=rwX,g=rwX,o= |     device: "{{ container.device | default(omit) }}" | ||||||
|   become: true |     ports: "{{ container.ports | default(omit) }}" | ||||||
|  |     volumes: "{{ container.volumes | default(omit) }}" | ||||||
| - name: Déployer le conteneur |     userns: "{{ container.userns | default(omit) }}" | ||||||
|   ansible.builtin.template: |     mount: "{{ container.mount | default(omit) }}" | ||||||
|     src: podman-quadlet.container.j2  |     publish: "{{ container.publish | default(omit) }}" | ||||||
|     dest: "{{ container_basepath }}/{{ container_filename }}" |     env: "{{ container.env | default(omit) }}" | ||||||
|     owner: "{{ container_user }}" |     quadlet_options: "{{ container.quadlet_options | default(omit) }}" | ||||||
|     group: "{{ container_user }}" |     recreate: true | ||||||
|     mode: u=rw,g=rw,o= |  | ||||||
|   become: true |  | ||||||
|   register: deploy_container |  | ||||||
|  |  | ||||||
| - name: Activer le lingering |  | ||||||
|   ansible.builtin.command: |  | ||||||
|    cmd: "loginctl enable-linger {{ container_user }}" |  | ||||||
|    creates: /var/lib/systemd/linger/{{ container_user }} |  | ||||||
|   become: true |  | ||||||
|  |  | ||||||
| - name: Démarrer ou redémarrer le conteneur |  | ||||||
|   ansible.builtin.systemd_service: |  | ||||||
|     name: "{{ container_filename | replace('.container', '.service') }}" |  | ||||||
|     state: "{{ 'restarted' if deploy_container.changed else 'started' }}" |  | ||||||
|     enabled: true |  | ||||||
|     daemon_reload: true |  | ||||||
|     scope: user |  | ||||||
|   become: true |   become: true | ||||||
|   become_user: "{{ container_user }}" |   become_user: "{{ container_user }}" | ||||||
|   | |||||||
| @@ -1,17 +1,31 @@ | |||||||
| --- | --- | ||||||
| # tasks file for podman | # tasks file for podman | ||||||
|  |  | ||||||
| - name: Installer les paquets | - name: Installer les pré-requis | ||||||
|   ansible.builtin.apt: |   ansible.builtin.apt: | ||||||
|     name: |     name: | ||||||
|       - dbus-user-session |       - dbus-user-session | ||||||
|       - podman |  | ||||||
|       - rootlesskit |       - rootlesskit | ||||||
|       - slirp4netns |       - slirp4netns | ||||||
|       - systemd-container |       - systemd-container | ||||||
|     state: present |     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 |     default_release: sid | ||||||
|   become: true |   become: true | ||||||
|  |   notify: | ||||||
|  |     - Redémarrer l'instance | ||||||
|  |     - Attendre que le port SSH soit ouvert | ||||||
|  |  | ||||||
|  | - name: Exécuter les handlers | ||||||
|  |   ansible.builtin.meta: flush_handlers | ||||||
|  |  | ||||||
| - name: Déployer la configuration de rsyslog | - name: Déployer la configuration de rsyslog | ||||||
|   ansible.builtin.template: |   ansible.builtin.template: | ||||||
|   | |||||||
| @@ -2,17 +2,17 @@ | |||||||
| # tasks file for podman | # tasks file for podman | ||||||
|  |  | ||||||
| - name: Importer les tâches d'installation | - name: Importer les tâches d'installation | ||||||
|  |   ansible.builtin.import_tasks: | ||||||
|  |     file: installation.yml | ||||||
|   tags: installation |   tags: installation | ||||||
|   ansible.builtin.import_tasks: installation.yml |  | ||||||
|  |  | ||||||
| - name: Importer les tâches de configuration | - name: Importer les tâches de configuration | ||||||
|   tags: configuration |   ansible.builtin.include_tasks: | ||||||
|   ansible.builtin.include_tasks: configuration.yml |     file: configuration.yml | ||||||
|   loop: "{{ podman_containers }}" |   loop: "{{ podman_containers }}" | ||||||
|   loop_control: |   loop_control: | ||||||
|     label: "{{ container.name }}" |     label: "{{ container.name }}" | ||||||
|     loop_var: container |     loop_var: container | ||||||
|   vars: |   vars: | ||||||
|     container_user: "podman-{{ container.user | default(container.name) }}" |     container_user: "podman-{{ container.user | default(container.name) }}" | ||||||
|     container_basepath: "/home/{{ container_user }}/.config/containers/systemd" |   tags: configuration | ||||||
|     container_filename: "podman-{{ container.name }}.container" |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user