3
0
forked from jakub/ansible
Files
ansible_fencl/portainer/update_portainer_agent_vm.yml
martin.fencl 1b26c03c28 .
2026-02-03 19:14:35 +01:00

61 lines
1.9 KiB
Plaintext

# update_portainer_agent_vm.yml
- name: Update Portainer Agent (VM, no compose)
hosts: pve2_vm
gather_facts: false
vars:
agent_container_name: portainer_agent
agent_port: 9001
tasks:
- name: Check if agent container exists
ansible.builtin.command:
argv: ["bash", "-lc", "docker ps -a --format '{{.Names}}' | grep -x '{{ agent_container_name }}'"]
register: agent_exists
changed_when: false
failed_when: false
- name: Abort if agent container is missing
ansible.builtin.fail:
msg: "Container '{{ agent_container_name }}' not found."
when: agent_exists.rc != 0
- name: Read current agent image
ansible.builtin.command:
argv: ["bash", "-lc", "docker inspect -f '{{.Config.Image}}' {{ agent_container_name }}"]
register: agent_image
changed_when: false
- name: Pull latest image tag for current agent image
ansible.builtin.command:
argv: ["bash", "-lc", "docker pull {{ agent_image.stdout | trim }}"]
changed_when: true
- name: Recreate agent container with standard Portainer Agent args
ansible.builtin.command:
argv:
- bash
- -lc
- |
set -euo pipefail
# Stop/remove old container
docker rm -f "{{ agent_container_name }}" >/dev/null 2>&1 || true
# Run Portainer Agent with common, safe defaults
docker run -d \
--name "{{ agent_container_name }}" \
--restart=always \
-p {{ agent_port }}:9001 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
"{{ agent_image.stdout | trim }}"
changed_when: true
- name: Wait for agent port
ansible.builtin.wait_for:
host: 127.0.0.1
port: "{{ agent_port }}"
timeout: 60