Added: Update docker compose projects playbook
This commit is contained in:
		
							
								
								
									
										2
									
								
								group_vars/server.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								group_vars/server.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
---
 | 
			
		||||
ansible_become_method: doas
 | 
			
		||||
							
								
								
									
										6
									
								
								host_vars/filiprojek-media.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								host_vars/filiprojek-media.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
ansible_connection: ssh
 | 
			
		||||
ansible_user: fr
 | 
			
		||||
ansible_host: 10.123.0.11
 | 
			
		||||
ansible_ssh_common_args: '-o StrictHostKeyChecking=no'
 | 
			
		||||
ansible_ssh_private_key_file: ~/.ssh/fr/fr-ansible@media.filiprojek.cz.ssh
 | 
			
		||||
							
								
								
									
										6
									
								
								host_vars/fofrweb-s3.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								host_vars/fofrweb-s3.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
ansible_connection: ssh
 | 
			
		||||
ansible_user: filiprojek
 | 
			
		||||
ansible_host: 10.123.0.1
 | 
			
		||||
ansible_ssh_common_args: '-o StrictHostKeyChecking=no'
 | 
			
		||||
ansible_ssh_private_key_file: ~/.ssh/fofrweb/filiprojek@s3.fofrweb.com_2.ssh
 | 
			
		||||
							
								
								
									
										3
									
								
								host_vars/tests3.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								host_vars/tests3.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
ansible_host: localhost
 | 
			
		||||
ansible_port: 2222
 | 
			
		||||
ansible_user: root
 | 
			
		||||
							
								
								
									
										38
									
								
								hosts
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								hosts
									
									
									
									
									
								
							@@ -1,25 +1,19 @@
 | 
			
		||||
[server]
 | 
			
		||||
#10.123.0.1	# s3
 | 
			
		||||
#10.123.0.4	# rpi
 | 
			
		||||
#10.123.0.10	# microlab
 | 
			
		||||
#10.123.0.11	# media
 | 
			
		||||
#tests3 
 | 
			
		||||
fofrweb-s3
 | 
			
		||||
filiprojek-media
 | 
			
		||||
 | 
			
		||||
10.123.0.1	# s3
 | 
			
		||||
10.123.0.4	# rpi
 | 
			
		||||
10.123.0.10	# microlab
 | 
			
		||||
10.123.0.11	# media
 | 
			
		||||
 | 
			
		||||
[server:vars]
 | 
			
		||||
 | 
			
		||||
ansible_user=ansible
 | 
			
		||||
ansible_ssh_private_key_file=~/.ssh/fofrweb/ansible@fofrweb.com.ssh
 | 
			
		||||
ansible_become_method=doas
 | 
			
		||||
 | 
			
		||||
[pc]
 | 
			
		||||
 | 
			
		||||
10.123.0.100	# x230
 | 
			
		||||
10.123.0.102	# filip-laptop
 | 
			
		||||
10.123.0.103	# t480
 | 
			
		||||
 | 
			
		||||
[pc:vars]
 | 
			
		||||
 | 
			
		||||
ansible_user=fr
 | 
			
		||||
# ansible_ssh_private_key_file=~/.ssh/fofrweb/ansible@fofrweb.com.ssh
 | 
			
		||||
ansible_become_method=doas
 | 
			
		||||
#[pc]
 | 
			
		||||
#10.123.0.100	# x230
 | 
			
		||||
#10.123.0.102	# filip-laptop
 | 
			
		||||
#10.123.0.103	# t480
 | 
			
		||||
#
 | 
			
		||||
#[pc:vars]
 | 
			
		||||
#ansible_user=fr
 | 
			
		||||
## ansible_ssh_private_key_file=~/.ssh/fofrweb/ansible@fofrweb.com.ssh
 | 
			
		||||
#ansible_become_method=doas
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,3 +8,9 @@
 | 
			
		||||
          name: bash,vim,htop,neofetch
 | 
			
		||||
          state: latest
 | 
			
		||||
 | 
			
		||||
      - name: install docker
 | 
			
		||||
        become: true
 | 
			
		||||
        apk:
 | 
			
		||||
          name: docker
 | 
			
		||||
          state: present
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										23
									
								
								playbooks/update-docker-project.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								playbooks/update-docker-project.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Pull updated images for project at {{ project.path }}
 | 
			
		||||
  community.docker.docker_compose_v2_pull:
 | 
			
		||||
    project_src: "{{ project.path }}"
 | 
			
		||||
  register: pull_result
 | 
			
		||||
 | 
			
		||||
- name: Debug pull result for {{ project.path }}
 | 
			
		||||
  debug:
 | 
			
		||||
    msg: "Pull changed: {{ pull_result.changed }} for project at {{ project.path }}"
 | 
			
		||||
 | 
			
		||||
- name: Restart project at {{ project.path }} if images updated
 | 
			
		||||
  block:
 | 
			
		||||
    - name: Bring project down at {{ project.path }}
 | 
			
		||||
      community.docker.docker_compose_v2:
 | 
			
		||||
        project_src: "{{ project.path }}"
 | 
			
		||||
        state: absent
 | 
			
		||||
 | 
			
		||||
    - name: Bring project up (detached) at {{ project.path }}
 | 
			
		||||
      community.docker.docker_compose_v2:
 | 
			
		||||
        project_src: "{{ project.path }}"
 | 
			
		||||
        state: present
 | 
			
		||||
  when: pull_result.changed
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										33
									
								
								playbooks/update-dockers.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								playbooks/update-dockers.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Update docker-compose projects on filiprojek-media
 | 
			
		||||
  hosts: filiprojek-media
 | 
			
		||||
  become: false # user fr is in the docker group
 | 
			
		||||
  vars:
 | 
			
		||||
    docker_projects:
 | 
			
		||||
      - path: /srv/docker/immich/
 | 
			
		||||
      - path: /srv/docker/jellyfin/
 | 
			
		||||
      - path: /srv/docker/radarr/
 | 
			
		||||
      - path: /srv/docker/syncthing/
 | 
			
		||||
      
 | 
			
		||||
  tasks:
 | 
			
		||||
    - name: Process each docker-compose project
 | 
			
		||||
      ansible.builtin.include_tasks: update-docker-project.yaml
 | 
			
		||||
      loop: "{{ docker_projects }}"
 | 
			
		||||
      loop_control:
 | 
			
		||||
        loop_var: project
 | 
			
		||||
 | 
			
		||||
- name: Update docker-compose projects fofrweb-s3
 | 
			
		||||
  hosts: fofrweb-s3
 | 
			
		||||
  become: false # user filiprojek is in the docker group
 | 
			
		||||
  vars:
 | 
			
		||||
    docker_projects:
 | 
			
		||||
      - path: /srv/www/cz/filiprojek/git
 | 
			
		||||
      - path: /srv/www/com/fofrweb/status
 | 
			
		||||
      
 | 
			
		||||
  tasks:
 | 
			
		||||
    - name: Process each docker-compose project
 | 
			
		||||
      ansible.builtin.include_tasks: update-docker-project.yaml
 | 
			
		||||
      loop: "{{ docker_projects }}"
 | 
			
		||||
      loop_control:
 | 
			
		||||
        loop_var: project
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user