You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mitogen/tests/ansible/regression/issue_776__load_plugins_cal...

76 lines
2.3 KiB
YAML

# https://github.com/mitogen-hq/mitogen/issues/776
---
- name: regression/issue_776__load_plugins_called_twice.yml
hosts: test-targets
become: "{{ groups.linux is defined and inventory_hostname in groups.linux }}"
# Delayed until after the end_play, due to Python version requirements
gather_facts: false
tags:
- issue_776
vars:
ansible_python_interpreter: "{{ pkg_mgr_python_interpreter }}"
package: rsync # Chosen to exist in all tested distros/package managers
tasks:
# The package management modules require using the same Python version
# as the target's package manager libraries. This is sometimes in conflict
# with Ansible requirements, e.g. Ansible 10 (ansible-core 2.17) does not
# support Python 2.x on targets.
- meta: end_play
when:
- ansible_version.full is version('2.17', '>=', strict=True)
- name: Gather facts manually
setup:
- name: Switch to archived package repositories
copy:
dest: "{{ item.dest }}"
content: "{{ item.content }}"
mode: u=rw,go=r
loop: "{{ pkg_repos_overrides }}"
loop_control:
label: "{{ item.dest }}"
- name: Add signing keys
copy:
src: "{{ item.src }}"
dest: "/etc/apt/trusted.gpg.d/{{ item.src | basename }}"
mode: u=rw,go=r
loop:
- src: debian-archive-bullseye-automatic.gpg # Debian 11
- src: debian-archive-bookworm-automatic.gpg # Debian 12
when:
# Ideally this would check for Debian 11, but distribution_major_version
# is unpopulated sometimes.
- ansible_facts.distribution == "Debian"
- name: Update package index
apt:
update_cache: true
when:
- ansible_facts.pkg_mgr in ["apt"]
- name: Test package module 1st call
package:
name: "{{ package }}"
state: present
- name: Test package module 2nd call
package:
name: "{{ package }}"
state: present
- name: Test dnf module 2nd call
dnf:
name: "{{ package }}"
state: present
when:
- ansible_facts.pkg_mgr == 'dnf'
- name: Test dnf module 2nd call
dnf:
name: "{{ package }}"
state: present
when:
- ansible_facts.pkg_mgr == 'dnf'