This commit is contained in:
6
roles/portainer_deploy/handlers/main.yaml
Normal file
6
roles/portainer_deploy/handlers/main.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: Start Portainer
|
||||
community.docker.docker_compose:
|
||||
project_src: /home/ubuntu/docker-compose/portainer
|
||||
state: present
|
||||
restarted: true
|
41
roles/portainer_deploy/tasks/main.yaml
Normal file
41
roles/portainer_deploy/tasks/main.yaml
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
- name: Ensure docker-compose is installed
|
||||
ansible.builtin.package:
|
||||
name: docker-compose
|
||||
state: present
|
||||
|
||||
- name: Ensure Docker service is running
|
||||
ansible.builtin.service:
|
||||
name: docker
|
||||
state: started
|
||||
enabled: true
|
||||
|
||||
- name: Setup Portainer directory
|
||||
ansible.builtin.file:
|
||||
path: /home/ubuntu/docker-compose/portainer
|
||||
state: directory
|
||||
mode: '0755' # Optional file permissions
|
||||
owner: ubuntu # Optional ownership
|
||||
group: ubuntu # Optional group ownership
|
||||
|
||||
- name: Copy compose from template to host
|
||||
ansible.builtin.template:
|
||||
src: "templates/docker_compose.yaml.j2"
|
||||
dest: "/home/ubuntu/docker-compose/portainer/docker-compose.yaml"
|
||||
mode: '0755' # Optional file permissions
|
||||
owner: ubuntu # Optional ownership
|
||||
group: ubuntu # Optional group ownership
|
||||
notify:
|
||||
- Start Portainer
|
||||
|
||||
- name: Create Portainer storage on NFS if it doesn't exist
|
||||
ansible.builtin.file:
|
||||
path: "{{ portainer_data }}"
|
||||
state: directory
|
||||
mode: '0755'
|
||||
|
||||
- name: Deploy Portainer stack
|
||||
ansible.builtin.command:
|
||||
cmd: docker stack deploy -c /home/ubuntu/docker-compose/portainer/docker-compose.yaml portainer
|
||||
register: swarm_check
|
||||
changed_when: false
|
36
roles/portainer_deploy/templates/docker_compose.yaml.j2
Normal file
36
roles/portainer_deploy/templates/docker_compose.yaml.j2
Normal file
@ -0,0 +1,36 @@
|
||||
version: '3.2'
|
||||
|
||||
services:
|
||||
agent:
|
||||
image: portainer/agent:2.21.5
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- /var/lib/docker/volumes:/var/lib/docker/volumes
|
||||
networks:
|
||||
- agent_network
|
||||
deploy:
|
||||
mode: global
|
||||
placement:
|
||||
constraints: [node.platform.os == linux]
|
||||
|
||||
portainer:
|
||||
image: portainer/portainer-ce:2.21.5
|
||||
command: -H tcp://tasks.agent:9001 --tlsskipverify
|
||||
ports:
|
||||
- "9443:9443"
|
||||
- "9000:9000"
|
||||
- "8000:8000"
|
||||
volumes:
|
||||
- /share/portainer_data:/data
|
||||
networks:
|
||||
- agent_network
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints: [node.role == manager]
|
||||
|
||||
networks:
|
||||
agent_network:
|
||||
driver: overlay
|
||||
attachable: true
|
2
roles/portainer_deploy/vars/main.yaml
Normal file
2
roles/portainer_deploy/vars/main.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
---
|
||||
portainer_version: "latest"
|
Reference in New Issue
Block a user