Example 2: Install Mitogen plugins

Create a playbook

shell> cat ansible.yml
- hosts: test_01
  become: true
  roles:
    - vbotka.ansible

Create host_vars/test_01/ansible-plugins.yml

shell> cat host_vars/test_01/ansible-plugins.yml
map_mitogen_ver: 0.2.9
map_mitogen_sha256: "sha256:76cb9afef92596818a4639afb2a0bb0384ce7b6699b353af55662057b08b1e57"
ma_plugins:
  - archive: mitogen-{{ map_mitogen_ver }}.tar.gz
    archive_url: https://networkgenomics.com/try/mitogen-{{ map_mitogen_ver }}.tar.gz
    checksum: "{{ map_mitogen_sha256 }}"
    dest: mitogen-{{ map_mitogen_ver }}
    link: mitogen
    plugins:
      - path: mitogen/ansible_mitogen/plugins/strategy
        ini_key: strategy_plugins
        enable: true

Install plugins

shell> ansible-playbook ansible.yml -t ma_plugins
...
TASK [vbotka.ansible : plugins: Debug ma_plugins_paths_list] *********
ok: [planb] => (item=filter_plugins) => {
    "msg": {
        "strategy_plugins": {
            "paths": [
                "mitogen/ansible_mitogen/plugins/strategy"
            ]
        }
    }
}

Show the installed plugins at the remote host

shell> tree /usr/local/ansible/plugins/mitogen/ansible_mitogen/plugins/
/usr/local/ansible/plugins/mitogen/ansible_mitogen/plugins/
├── action
│   ├── __init__.py
│   ├── mitogen_fetch.py
│   ├── mitogen_fetch.pyc
│   └── mitogen_get_stack.py
├── connection
│   ├── __init__.py
│   ├── mitogen_buildah.py
│   ├── mitogen_doas.py
│   ├── mitogen_docker.py
│   ├── mitogen_jail.py
│   ├── mitogen_kubectl.py
│   ├── mitogen_local.py
│   ├── mitogen_local.pyc
│   ├── mitogen_lxc.py
│   ├── mitogen_lxd.py
│   ├── mitogen_machinectl.py
│   ├── mitogen_setns.py
│   ├── mitogen_ssh.py
│   ├── mitogen_ssh.pyc
│   ├── mitogen_sudo.py
│   └── mitogen_su.py
├── __init__.py
└── strategy
    ├── __init__.py
    ├── mitogen_free.py
    ├── mitogen_host_pinned.py
    ├── mitogen_linear.py
    ├── mitogen_linear.pyc
    └── mitogen.py