Hey all,

take a look at this and lemme know where I'm hosed at.  The errors are a
bit misleading:

---
- name: Check who needs reboots
  hosts: ALL_RHEL
  become: yes

  vars_files:
    - passwd.yml
    - vars.yml

  tasks:
    - name: check packages for updates
      shell: yum list updates | awk 'f;/Updated Packages/{f=1;}' | awk '{
print $1 }'
      changed_when: updates.stdout > "0"
      args:
        warn: false
      register: updates

    - name: display count
      debug:
        msg: "Found {{ updates.stdout_lines | length }} packages to be
updated:\n\n{{ updates.stdout }}"

    - when: updates.stdout > "0"
      block:
        - name: install updates using yum
          yum:
            name: "*"
            state: latest
          async: 45
          poll: 0

        - name: install yum-utils
          package:
            name: yum-utils

        - name: check if reboot is required RHEL7
          shell: needs-restarting -r
          failed_when: false
          register: reboot_required
          changed_when: false
          when:
            - ansible_os_family == 'RedHat'
            - ansible_distribution_major_version | version_compare('7', '=')

        - name: check if reboot is reqd RHEL6
          shell: LAST_KERNEL=$(rpm -q --last kernel | awk
'NR==1{sub(/kernel-/,""); print $1}'); CURRENT_KERNEL=$(uname -r); if [
$LAST_KERNEL != $CURRENT_KERNEL ]; then echo 'reboot'; else echo 'no'; fi
          failed_when: false
          register: reboot_required
          changed_when: false
          when:
            - ansible_os_family == 'RedHat'
            - ansible_distribution_major_version | version_compare('6', '=')


    - when: #(updates.stdout_lines | length > 0 and reboot_required.rc !=
0) or
        - reboot_required.stdout == "reboot"
      block:
        - name: reboot the server if required
          shell: sleep 3; reboot
          ignore_errors: true
          changed_when: false
          async: 1
          poll: 0

        - name: wait for server to come back after reboot
          wait_for_connection:
            timeout: 600
            delay: 20
          register: reboot_result

        - name: reboot time
          debug:
            msg: "The system rebooted in {{ reboot_result.elapsed }}
seconds."

Here's the part where it dies:  The RHEL6 check doesn't seem to be running
like it's supposed to.
Thanks!

TASK [install yum-utils]
**********************************************************************************************************************************************
skipping: [baseserver-lx]

TASK [check if reboot is required RHEL7]
******************************************************************************************************************************
skipping: [baseserver-lx]

*TASK [check if reboot is reqd RHEL6] *
**********************************************************************************************************************************
skipping: [baseserver-lx]

TASK [reboot the server if required]
**********************************************************************************************************************************
fatal: [baseserver-lx.swpc.noaa.gov]: FAILED! => {"msg": "The conditional
check 'reboot_required.stdout == \"reboot\"' failed. The error was: error
while evaluating conditional (reboot_required.stdout == \"reboot\"): 'dict
object' has no attribute 'stdout'\n\nThe error appears to have been in
'/etc/ansible/roles/needs-reboot.yml': line 57, column 11, but may\nbe
elsewhere in the file depending on the exact syntax problem.\n\nThe
offending line appears to be:\n\n      block:\n        - name: reboot the
server if required\n          ^ here\n"}
...ignoring

TASK [wait for server to come back after reboot]
**********************************************************************************************************************
fatal: [baseserver-lx]: FAILED! => {"msg": "The conditional check
'reboot_required.stdout == \"reboot\"' failed. The error was: error while
evaluating conditional (reboot_required.stdout == \"reboot\"): 'dict
object' has no attribute 'stdout'\n\nThe error appears to have been in
'/etc/ansible/roles/needs-reboot.yml': line 64, column 11, but may\nbe
elsewhere in the file depending on the exact syntax problem.\n\nThe
offending line appears to be:\n\n\n        - name: wait for server to come
back after reboot\n          ^ here\n"}

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAHKi8CiZWJk8tdGx8u-HC%2Bk-EFgOrXRqPrWGduuJrgeA62CwoA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to