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.

Reply via email to