-
-
Save maethor/380676f6b1cec8cc7439 to your computer and use it in GitHub Desktop.
| --- | |
| - hosts: all | |
| sudo: yes | |
| tasks: | |
| - name: Update packages list | |
| apt: update_cache=yes | |
| when: ansible_os_family == 'Debian' | |
| - name: List packages to upgrade (1/2) | |
| shell: aptitude -q -F%p --disable-columns search "~U" | |
| register: updates | |
| changed_when: False | |
| when: ansible_os_family == 'Debian' | |
| - name: List packages to upgrade (2/2) | |
| debug: msg="{{ updates.stdout_lines | count }} packages to upgrade ({{ updates.stdout_lines | join(', ') }})" | |
| when: (ansible_os_family == 'Debian' and updates.stdout_lines) | |
| - name: Upgrade packages | |
| apt: upgrade=safe | |
| when: ansible_os_family == 'Debian' | |
| - name: Check what the new version is | |
| shell: lsb_release -r | awk '{print $2}' | |
| changed_when: False | |
| register: new_release | |
| - name: Notify distribution version upgrade | |
| debug: msg="Debian has been upgraded from {{ ansible_lsb.release }} to {{ new_release.stdout }}" | |
| when: ansible_lsb.release != new_release.stdout | |
| - name: List services to restart (1/2) | |
| shell: checkrestart | grep ^service | awk '{print $2}' | |
| register: services | |
| changed_when: False | |
| when: ansible_os_family == 'Debian' | |
| - name: List services to restart (2/2) | |
| debug: msg="{{ services.stdout_lines | count }} services to restart ({{ services.stdout_lines | join (', ') }})" | |
| when: (ansible_os_family == 'Debian' and services.stdout_lines) |
Better go with failed_when: updates.rc not in [0, 1]. If aptitude is not installed at all, it will return 127 which will silently pass with updates.rc < 0.
Hi, on the debian_upgrade.yml, which passed successfully and upgraded 3 Pi's yesterday, now one Pi is reporting:
`TASK [List packages to upgrade (1/2)] ***************************************************************************************************
fatal: [dabar3]: FAILED! => {"changed": false, "cmd": "aptitude -q -F%p --disable-columns search "~U"", "delta": "0:00:03.330742", "end": "2017-11-05 07:38:08.981687", "failed": true, "msg": "non-zero return code", "rc": 1, "start": "2017-11-05 07:38:05.650945", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}`
That Pi is the only one running Pi Stretch, Any ideas?
Thanks for this.
register: updateschanged_when: Falsewhen: ansible_os_family == 'Debian'+ failed_when: updates.rc < 0solves an issue in Debian stretch.v9.0.
[1] fatal: [srvx]: FAILED! => {"changed": false, "cmd": "aptitude -q -F%p --disable-co
lumns search "~U"", "delta": "0:00:00.803267", "end": "2017-07-01 15:20:00.668301", "failed": true, "rc": 1, "start": "2017-
07-01 15:19:59.865034", "stderr": "", "stdout": "", "stdout_lines": [], "warnings": []}