# UNINSTALL - name: uninstall sos yum: name=sos state=removed register: yum_result - name: check sos with rpm shell: rpm -q sos failed_when: False register: rpm_result - name: verify uninstallation of sos assert: that: - "yum_result.rc == 0" - "rpm_result.rc == 1" # UNINSTALL AGAIN - name: uninstall sos again in check mode yum: name=sos state=removed check_mode: true register: yum_result - name: verify no change on re-uninstall in check mode assert: that: - "not yum_result.changed" - name: uninstall sos again yum: name=sos state=removed register: yum_result - name: verify no change on re-uninstall assert: that: - "not yum_result.changed" # INSTALL - name: install sos in check mode yum: name=sos state=present check_mode: true register: yum_result - name: verify installation of sos in check mode assert: that: - "yum_result.changed" - name: install sos yum: name=sos state=present register: yum_result - name: check sos with rpm shell: rpm -q sos failed_when: False register: rpm_result - name: verify installation of sos assert: that: - "yum_result.rc == 0" - "yum_result.changed" - "rpm_result.rc == 0" - name: verify yum module outputs assert: that: - "'changed' in yum_result" - "'msg' in yum_result" - "'rc' in yum_result" - "'results' in yum_result" # INSTALL AGAIN - name: install sos again in check mode yum: name=sos state=present check_mode: true register: yum_result - name: verify no change on second install in check mode assert: that: - "not yum_result.changed" - name: install sos again yum: name=sos state=present register: yum_result - name: verify no change on second install assert: that: - "not yum_result.changed" # INSTALL AGAIN WITH LATEST - name: install sos again with state latest in check mode yum: name=sos state=latest check_mode: true register: yum_result - name: verify install sos again with state latest in check mode assert: that: - "not yum_result.changed" - name: install sos again with state latest idempotence yum: name=sos state=latest register: yum_result - name: verify install sos again with state latest idempotence assert: that: - "not yum_result.changed" # INSTALL WITH LATEST - name: uninstall sos yum: name=sos state=removed register: yum_result - name: verify uninstall sos assert: that: - "yum_result|success" - name: install sos with state latest in check mode yum: name=sos state=latest check_mode: true register: yum_result - name: verify install sos with state latest in check mode assert: that: - "yum_result.changed" - name: install sos with state latest yum: name=sos state=latest register: yum_result - name: verify install sos with state latest assert: that: - "yum_result.changed" - name: install sos with state latest idempotence yum: name=sos state=latest register: yum_result - name: verify install sos with state latest idempotence assert: that: - "not yum_result.changed" # Multiple packages - name: uninstall sos and bc yum: name=sos,bc state=removed register: yum_result - name: check sos with rpm shell: rpm -q sos failed_when: False register: rpm_sos_result - name: check bc with rpm shell: rpm -q bc failed_when: False register: rpm_bc_result - name: verify packages installed assert: that: - "rpm_sos_result.rc != 0" - "rpm_bc_result.rc != 0" - name: install sos and bc as comma separated yum: name=sos,bc state=present register: yum_result - name: check sos with rpm shell: rpm -q sos failed_when: False register: rpm_sos_result - name: check bc with rpm shell: rpm -q bc failed_when: False register: rpm_bc_result - name: verify packages installed assert: that: - "yum_result.rc == 0" - "yum_result.changed" - "rpm_sos_result.rc == 0" - "rpm_bc_result.rc == 0" - name: uninstall sos and bc yum: name=sos,bc state=removed register: yum_result - name: install sos and bc as list yum: name: - sos - bc state: present register: yum_result - name: check sos with rpm shell: rpm -q sos failed_when: False register: rpm_sos_result - name: check bc with rpm shell: rpm -q bc failed_when: False register: rpm_bc_result - name: verify packages installed assert: that: - "yum_result.rc == 0" - "yum_result.changed" - "rpm_sos_result.rc == 0" - "rpm_bc_result.rc == 0" - name: uninstall sos and bc yum: name=sos,bc state=removed register: yum_result - name: install sos and bc as comma separated with spaces yum: name: "sos, bc" state: present register: yum_result - name: check sos with rpm shell: rpm -q sos failed_when: False register: rpm_sos_result - name: check sos with rpm shell: rpm -q bc failed_when: False register: rpm_bc_result - name: verify packages installed assert: that: - "yum_result.rc == 0" - "yum_result.changed" - "rpm_sos_result.rc == 0" - "rpm_bc_result.rc == 0" - name: uninstall sos and bc yum: name=sos,bc state=removed - name: install non-existent rpm yum: name="{{ item }}" with_items: - does-not-exist register: non_existent_rpm ignore_errors: True - name: check non-existent rpm install failed assert: that: - non_existent_rpm|failed # Install in installroot='/' - name: install sos yum: name=sos state=present installroot='/' register: yum_result - name: check sos with rpm shell: rpm -q sos --root=/ failed_when: False register: rpm_result - name: verify installation of sos assert: that: - "yum_result.rc == 0" - "yum_result.changed" - "rpm_result.rc == 0" - name: verify yum module outputs assert: that: - "'changed' in yum_result" - "'msg' in yum_result" - "'rc' in yum_result" - "'results' in yum_result" - name: uninstall sos yum: name: sos installroot: '/' state: removed register: yum_result - name: install group yum: name: "@Development Tools" state: present register: yum_result - name: verify installation of the group assert: that: - "yum_result.rc == 0" - "yum_result.changed" - name: verify yum module outputs assert: that: - "'changed' in yum_result" - "'msg' in yum_result" - "'rc' in yum_result" - "'results' in yum_result" - name: install the group again yum: name: "@Development Tools" state: present register: yum_result - name: verify nothing changed assert: that: - "yum_result.rc == 0" - "not yum_result.changed" - name: verify yum module outputs assert: that: - "'changed' in yum_result" - "'msg' in yum_result" - "'rc' in yum_result" - "'results' in yum_result" - name: install the group again but also with a package that is not yet installed yum: name: - "@Development Tools" - sos state: present register: yum_result - name: verify sos is installed assert: that: - "yum_result.rc == 0" - "yum_result.changed" - name: verify yum module outputs assert: that: - "'changed' in yum_result" - "'msg' in yum_result" - "'rc' in yum_result" - "'results' in yum_result" - name: try to install the group again, with --check to check 'changed' yum: name: "@Development Tools" state: present check_mode: yes register: yum_result - name: verify nothing changed assert: that: - "not yum_result.changed" - name: verify yum module outputs assert: that: - "'changed' in yum_result" - "'msg' in yum_result" - "'results' in yum_result" - name: try to install non existing group yum: name: "@non-existing-group" state: present register: yum_result ignore_errors: True - name: verify installation of the non existing group failed assert: that: - "yum_result.rc == 1" - "not yum_result.changed" - "yum_result|failed" - name: verify yum module outputs assert: that: - "'changed' in yum_result" - "'msg' in yum_result" - "'rc' in yum_result" - "'results' in yum_result" - name: try to install non existing file yum: name: /tmp/non-existing-1.0.0.fc26.noarch.rpm state: present register: yum_result ignore_errors: yes - name: verify installation failed assert: that: - "yum_result|failed" - "not yum_result.changed" - name: verify yum module outputs assert: that: - "'changed' in yum_result" - "'msg' in yum_result" - name: try to install from non existing url yum: name: http://non-existing.com/non-existing-1.0.0.fc26.noarch.rpm state: present register: yum_result ignore_errors: yes - name: verify installation failed assert: that: - "yum_result|failed" - "not yum_result.changed" - name: verify yum module outputs assert: that: - "'changed' in yum_result" - "'msg' in yum_result" - name: use latest to install httpd yum: name: httpd state: latest register: yum_result - name: verify httpd was installed assert: that: - "'changed' in yum_result" - name: uninstall httpd yum: name: httpd state: removed - name: update httpd only if it exists yum: name: httpd state: latest update_only: yes register: yum_result - name: verify httpd not installed assert: that: - "not yum_result.changed" - "'Packages providing httpd not installed due to update_only specified' in yum_result.results" - name: try to install not compatible arch rpm, should fail yum: name: http://download.fedoraproject.org/pub/epel/7/ppc64le/b/banner-1.3.4-3.el7.ppc64le.rpm state: present register: yum_result ignore_errors: True - name: verify that yum failed assert: that: - "yum_result.rc == 1" - "not yum_result.changed" - "yum_result|failed" # setup for testing installing an RPM from url - set_fact: pkg_name: fpaste - name: cleanup yum: name: "{{ pkg_name }}" state: absent - set_fact: pkg_url: http://download.fedoraproject.org/pub/epel/7/x86_64/f/fpaste-0.3.7.4.1-1.el7.noarch.rpm # setup end - name: download an rpm get_url: url: "{{ pkg_url }}" dest: "/tmp/{{ pkg_name }}.rpm" - name: install the downloaded rpm yum: name: "/tmp/{{ pkg_name }}.rpm" state: present register: yum_result - name: verify installation assert: that: - "yum_result.rc == 0" - "yum_result.changed" - "not yum_result|failed" - name: verify yum module outputs assert: that: - "'changed' in yum_result" - "'msg' in yum_result" - "'rc' in yum_result" - "'results' in yum_result" - name: install the downloaded rpm again yum: name: "/tmp/{{ pkg_name }}.rpm" state: present register: yum_result - name: verify installation assert: that: - "yum_result.rc == 0" - "not yum_result.changed" - "not yum_result|failed" - name: verify yum module outputs assert: that: - "'changed' in yum_result" - "'msg' in yum_result" - "'rc' in yum_result" - "'results' in yum_result" - name: clean up yum: name: "{{ pkg_name }}" state: absent - name: install from url yum: name: "{{ pkg_url }}" state: present register: yum_result - name: verify installation assert: that: - "yum_result.rc == 0" - "yum_result.changed" - "not yum_result|failed" - name: verify yum module outputs assert: that: - "'changed' in yum_result" - "'msg' in yum_result" - "'rc' in yum_result" - "'results' in yum_result"