1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/test/integration/targets/yum/tasks/repo.yml

634 lines
16 KiB
YAML

- name: Install epel repo which is missing on rhel-7 and is needed for rpmfluff
yum:
name: https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
when:
- ansible_distribution in ['RedHat']
- name: Install rpmfluff and deps
yum:
name: "{{ item }}"
with_items:
- python-rpmfluff
- createrepo_c
- createrepo # used by el6 version of rpmfluff
- name: Copy script for creating a repo
copy:
src: create-repo.py
dest: /tmp/create-repo.py
mode: 0755
- name: Create RPMs and put them into a repo
shell: "python /tmp/create-repo.py {{ ansible_architecture }}"
register: repo
- set_fact:
repodir: "{{ repo.stdout_lines[-1] }}"
- name: Install the repo
yum_repository:
name: "fake-{{ ansible_architecture }}"
description: "fake-{{ ansible_architecture }}"
baseurl: "file://{{ repodir }}"
gpgcheck: no
- name: Create RPMs and put them into a repo (i686)
shell: "python /tmp/create-repo.py i686"
register: repo_i686
- set_fact:
repodir_i686: "{{ repo_i686.stdout_lines[-1] }}"
- name: Install the repo (i686)
yum_repository:
name: "fake-i686"
description: "fake-i686"
baseurl: "file://{{ repodir_i686 }}"
gpgcheck: no
- name: Create RPMs and put them into a repo (ppc64)
shell: "python /tmp/create-repo.py ppc64"
register: repo_ppc64
- set_fact:
repodir_ppc64: "{{ repo_ppc64.stdout_lines[-1] }}"
- name: Install the repo (ppc64)
yum_repository:
name: "fake-ppc64"
description: "fake-ppc64"
baseurl: "file://{{ repodir_ppc64 }}"
gpgcheck: no
# ============================================================================
- name: Install foo-1.0-1
yum:
name: foo-1.0-1
state: present
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout.startswith('foo-1.0-1')"
- 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 foo-1.0-1 again
yum:
name: foo-1.0-1
state: present
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "not yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout.startswith('foo-1.0-1')"
- 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 foo-1:1.0-2
yum:
name: "foo-1:1.0-2.{{ ansible_architecture }}"
state: present
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout.startswith('foo-1.0-2')"
- name: Verify yum module outputs
assert:
that:
- "'changed' in yum_result"
- "'msg' in yum_result"
- "'rc' in yum_result"
- "'results' in yum_result"
- name: Remove foo
yum:
name: foo
state: absent
# ============================================================================
- name: Install 1:foo-1.0-2
yum:
name: "1:foo-1.0-2.{{ ansible_architecture }}"
state: present
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout.startswith('foo-1.0-2')"
- 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 foo-1.0-2 again
yum:
name: foo-1.0-2
state: present
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "not yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout.startswith('foo-1.0-2')"
- name: Verify yum module outputs
assert:
that:
- "'changed' in yum_result"
- "'msg' in yum_result"
- "'rc' in yum_result"
- "'results' in yum_result"
# ============================================================================
- name: Update to the latest foo
yum:
name: foo
state: latest
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout.startswith('foo-1.1-1')"
- 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 foo-1.0-1 from a file (higher version is already installed)
yum:
name: "{{ repodir }}/foo-1.0-1.{{ ansible_architecture }}.rpm"
state: present
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "not yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout.startswith('foo-1.1-1')"
- name: Verify yum module outputs
assert:
that:
- "'changed' in yum_result"
- "'msg' in yum_result"
- "'rc' in yum_result"
- "'results' in yum_result"
- name: Remove foo
yum:
name: foo
state: absent
# ============================================================================
- name: Install foo-1.0-1 from a file
yum:
name: "{{ repodir }}/foo-1.0-1.{{ ansible_architecture }}.rpm"
state: present
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout.startswith('foo-1.0-1')"
- 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 foo-1.0-1 from a file again
yum:
name: "{{ repodir }}/foo-1.0-1.{{ ansible_architecture }}.rpm"
state: present
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "not yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout.startswith('foo-1.0-1')"
- 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 foo-1.0-2 from a file
yum:
name: "{{ repodir }}/foo-1.0-2.{{ ansible_architecture }}.rpm"
state: present
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout.startswith('foo-1.0-2')"
- 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 foo-1.0-2 from a file again
yum:
name: "{{ repodir }}/foo-1.0-2.{{ ansible_architecture }}.rpm"
state: present
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "not yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout.startswith('foo-1.0-2')"
- 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 downgrade foo without allow_downgrade being set
yum:
name: foo-1.0-1
state: present
allow_downgrade: no
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "not yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout.startswith('foo-1.0-2')"
- name: Verify yum module outputs
assert:
that:
- "'changed' in yum_result"
- "'msg' in yum_result"
- "'rc' in yum_result"
- "'results' in yum_result"
# ============================================================================
- name: Downgrade foo
yum:
name: foo-1.0-1
state: present
allow_downgrade: yes
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout.startswith('foo-1.0-1')"
- name: Verify yum module outputs
assert:
that:
- "'changed' in yum_result"
- "'msg' in yum_result"
- "'rc' in yum_result"
- "'results' in yum_result"
# ============================================================================
- name: Update foo with update_only set
yum:
name: foo
state: latest
update_only: yes
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout.startswith('foo-1.1-1')"
- name: Verify yum module outputs
assert:
that:
- "'changed' in yum_result"
- "'msg' in yum_result"
- "'rc' in yum_result"
- "'results' in yum_result"
- name: Remove foo
yum:
name: foo
state: absent
# ============================================================================
- name: Try to update foo which is not installed, update_only is set
yum:
name: foo
state: latest
update_only: yes
register: yum_result
ignore_errors: yes
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
ignore_errors: yes
- name: Verify installation
assert:
that:
- "rpm_result.rc == 1"
- "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: Try to install incompatible arch
yum:
name: "{{ repodir_ppc64 }}/foo-1.0-1.ppc64.rpm"
state: present
register: yum_result
ignore_errors: yes
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
ignore_errors: yes
- name: Verify installation
assert:
that:
- "rpm_result.rc == 1"
- "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: Make sure latest foo is installed
yum:
name: foo
state: latest
- name: Downgrade foo using rpm file
yum:
name: "{{ repodir }}/foo-1.0-1.{{ ansible_architecture }}.rpm"
state: present
allow_downgrade: yes
register: yum_result
- name: Check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: Verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout.startswith('foo-1.0-1')"
- name: Verify yum module outputs
assert:
that:
- "'changed' in yum_result"
- "'msg' in yum_result"
- "'rc' in yum_result"
- "'results' in yum_result"
# ============================================================================
- block:
- name: make sure foo is not installed
yum:
name: foo
state: absent
- name: install foo both archs
yum:
name: "{{ item }}"
state: present
with_items:
- "{{ repodir }}/foo-1.1-1.x86_64.rpm"
- "{{ repodir_i686 }}/foo-1.1-1.i686.rpm"
- name: try to install lower version of foo from rpm file, without allow_downgrade, just one arch
yum:
name: "{{ repodir_i686 }}/foo-1.0-1.i686.rpm"
state: present
register: yum_result
- name: check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "not yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout_lines[0].startswith('foo-1.1-1')"
- "rpm_result.stdout_lines[1].startswith('foo-1.1-1')"
- name: verify yum module outputs
assert:
that:
- "'changed' in yum_result"
- "'msg' in yum_result"
- "'rc' in yum_result"
- "'results' in yum_result"
when: ansible_architecture == "x86_64"
# ============================================================================
- block:
- name: make sure foo is not installed
yum:
name: foo
state: absent
- name: install foo both archs
yum:
name: "{{ item }}"
state: present
with_items:
- "{{ repodir }}/foo-1.0-1.x86_64.rpm"
- "{{ repodir_i686 }}/foo-1.0-1.i686.rpm"
- name: Update both arch in one task using rpm files
yum:
name: "{{ repodir }}/foo-1.1-1.x86_64.rpm,{{ repodir_i686 }}/foo-1.1-1.i686.rpm"
state: present
register: yum_result
- name: check foo with rpm
shell: rpm -q foo
register: rpm_result
- name: verify installation
assert:
that:
- "rpm_result.rc == 0"
- "yum_result.rc == 0"
- "yum_result.changed"
- "not yum_result|failed"
- "rpm_result.stdout_lines[0].startswith('foo-1.1-1')"
- "rpm_result.stdout_lines[1].startswith('foo-1.1-1')"
- name: verify yum module outputs
assert:
that:
- "'changed' in yum_result"
- "'msg' in yum_result"
- "'rc' in yum_result"
- "'results' in yum_result"
when: ansible_architecture == "x86_64"
# ============================================================================