Hello,
Do you recommend Migrating playbook from ubuntu to amazon Linux 2 (as it
uses *yum instead of apt*). If so, how can I check if missing add a package
to a new instance to make sure it installs python-apt*?*
*Ansible-Playbook*
---
- hosts: amazonlinux2
become: true
any_errors_fatal: true
serial: 1
max_fail_percentage: 0
vars:
ansible_user: ec2-user
tasks:
# do an "apt-get update", to ensure latest package lists
- name: apt-get update
apt:
update-cache: yes
changed_when: 0
# get a list of packages that have updates
- name: get list of pending upgrades
command: apt-get --simulate dist-upgrade
args:
warn: false # don't warn us about apt having its own plugin
register: apt_simulate
changed_when: 0
- name: Update cache
apt:
update-cache: yes
changed_when: false
- name: Fetch package list of updates
command: apt list --upgradable
register: aptlist
- set_fact:
updates: "{{ aptlist.stdout_lines | difference(['Listing...'])
| map('regex_replace', '^(.*?)/(.*)', '\\1') | list }}"
- debug: var=updates
# tell user about packages being updated
- name: show pending updates
debug:
var: updates
when: updates.0 is defined
# comment this part in if you want to manually ack each server update
- pause:
when: updates.0 is defined
# if a new kernel is incoming, remove old ones to avoid full /boot
- name: apt-get autoremove
command: apt-get -y autoremove
args:
warn: false
when: '"Inst linux-image-" in apt_simulate.stdout'
changed_when: 0
# do the actual apt-get dist-upgrade
- name: apt-get dist-upgrade
apt:
upgrade: dist # upgrade all packages to latest version
register: upgrade_output
# check if we need a reboot
- name: check if reboot needed
stat: path=/var/run/reboot-required
register: file_reboot_required
# "meta: end_play" aborts the rest of the tasks in the current «tasks:»
# section, for the current webserver
# "when:" clause ensures that the "meta: end_play" only triggers if the
# current server does _not_ need a reboot
- meta: end_play
when: not file_reboot_required.stat.exists
# because of the above meta/when we at this point know that the current
# host needs a reboot
# prompt for manual input before doing the actual reboot
- name: Confirm reboot of ec2-user
pause:
- name: reboot node
shell: sleep 2 && shutdown -r now "Reboot triggered by ansible"
async: 1
poll: 0
ignore_errors: true
# poll ssh port until we get a tcp connect
- name: wait for node to finish booting
become: false
local_action: wait_for host=ec2-user
port=22
state=started
delay=5
timeout=600
# give sshd time to start fully
- name: wait for ssh to start fully
pause:
seconds: 15
# wait a few minutes between hosts, unless we're on the last
- name: waiting between hosts
pause:
minutes: 10
when: inventory_hostname != ansible_play_hosts[-1]
*Ansible-Output*
PLAY [amazonlinux2]
******************************************************************************************************************************************
TASK [Gathering Facts]
***************************************************************************************************************************************
[WARNING]: Platform linux on host 10.11.12.13 is using the discovered
Python interpreter at /usr/bin/python, but future installation of another
Python
interpreter could change this. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html
for more information.
ok: [10.11.12.13]
TASK [apt-get update]
****************************************************************************************************************************************
[WARNING]: Updating cache and auto-installing *missing dependency:
python-apt*
fatal: [10.11.12.13]: FAILED! => {"changed": false, "cmd": "apt-get
update", "msg": "[Errno 2] No such file or directory", "rc": 2}
NO MORE HOSTS LEFT
*******************************************************************************************************************************************
NO MORE HOSTS LEFT
*******************************************************************************************************************************************
PLAY RECAP
***************************************************************************************************************************************************
10.11.12.13 : ok=1 changed=0 unreachable=0
failed=1 skipped=0 rescued=0 ignored=0
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/32e8f062-4e24-400e-a7d7-2f2181d9c8f4%40googlegroups.com.