43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
---
 | 
						|
- name: System Update Playbook
 | 
						|
  hosts: all
 | 
						|
  become: yes
 | 
						|
  gather_facts: yes
 | 
						|
  
 | 
						|
  tasks:
 | 
						|
    - name: Wait for automatic system updates to complete
 | 
						|
      shell: while fuser /var/lib/dpkg/lock-frontend >/dev/null 2>&1; do sleep 5; done
 | 
						|
      when: ansible_os_family == "Debian"
 | 
						|
      
 | 
						|
    - name: Update apt cache
 | 
						|
      apt:
 | 
						|
        update_cache: yes
 | 
						|
        cache_valid_time: 3600
 | 
						|
      when: ansible_os_family == "Debian"
 | 
						|
      retries: 3
 | 
						|
      delay: 10
 | 
						|
      
 | 
						|
    - name: Upgrade all packages
 | 
						|
      apt:
 | 
						|
        upgrade: yes
 | 
						|
        autoremove: yes
 | 
						|
        autoclean: yes
 | 
						|
      when: ansible_os_family == "Debian"
 | 
						|
      register: upgrade_result
 | 
						|
      retries: 3
 | 
						|
      delay: 10
 | 
						|
      
 | 
						|
    - name: Display upgrade results
 | 
						|
      debug:
 | 
						|
        msg: "System upgrade completed. {{ upgrade_result.changed }} packages were updated."
 | 
						|
        
 | 
						|
    - name: Check if reboot is required
 | 
						|
      stat:
 | 
						|
        path: /var/run/reboot-required
 | 
						|
      register: reboot_required
 | 
						|
      when: ansible_os_family == "Debian"
 | 
						|
      
 | 
						|
    - name: Notify if reboot is required
 | 
						|
      debug:
 | 
						|
        msg: "System reboot is required to complete the update."
 | 
						|
      when: reboot_required.stat.exists is defined and reboot_required.stat.exists |