Migrate the role

This commit is contained in:
Alexander Gorelyshev
2026-05-19 15:05:14 +04:00
parent fd6e2517a3
commit f706aa0f38
13 changed files with 336 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
---
# you can use {{all_users | selectattr('name', 'in', mamba_users)}} to narrow down a larger list
- name: Converge
hosts: all
vars:
mamba_users:
- name: alice
mamba_files: [project-alpha.yml, project-beta.yml]
- name: bob
mamba_files: [project-alpha.yml, project-beta.yml]
- name: charlie
pre_tasks:
- name: "Create test users"
loop: [alice, bob, charlie]
ansible.builtin.user:
name: "{{ item }}"
state: present
create_home: true
roles:
- role: genlab.common.miniforge
miniforge_release: 24.3.0-0
miniforge_users: "{{ mamba_users }}"
manifest_dir: "manifests"
miniforge_create_envs: true
miniforge_condarc:
channels: [conda-forge]

View File

@@ -0,0 +1,10 @@
---
name: env_alpha
channels:
- conda-forge
dependencies:
- python~=3.12
- pip>=22.2
- stress-ng==0.17.03
- pip:
- humanfriendly

View File

@@ -0,0 +1,9 @@
---
name: cucubeta
channels:
- conda-forge
dependencies:
- python~=3.10
- pip>=22.2
- pip:
- arrow

View File

@@ -0,0 +1,27 @@
---
dependency:
name: galaxy
driver:
name: docker
platforms:
- name: ubuntu
image: geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu2204}-ansible:latest
pre_build_image: true
command: ${MOLECULE_DOCKER_COMMAND:-""}
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:rw
cgroupns_mode: host
privileged: true
provisioner:
name: ansible
verifier:
name: ansible
lint: |
set -e
yamllint .
ansible-lint .

View File

@@ -0,0 +1,50 @@
---
- name: Verify
hosts: all
gather_facts: false
any_errors_fatal: true
tasks:
- name: "Check Mamba installing correct tools from channels"
become: true
become_user: alice
changed_when: false
vars:
env: env_alpha
register: miniforge_tool_version
ansible.builtin.command:
cmd: ~/miniforge3/envs/{{ env }}/bin/stress-ng --version
- name: "Verify the version of the installed tool"
ansible.builtin.assert:
that: "'stress-ng, version 0.17.03' in miniforge_tool_version.stdout"
success_msg: "Correct version installed"
fail_msg: "Error: incorrect version installed"
- name: "Check the deployed environments for Alice (pip)"
become: true
become_user: alice
loop:
- { env: 'env_alpha', module: 'humanfriendly' }
- { env: 'cucubeta', module: 'arrow' }
changed_when: false
ansible.builtin.command:
cmd: ~/miniforge3/envs/{{ item.env }}/bin/python -c 'import {{ item.module }}'
- name: "Check the deployed environments for Bob"
become: true
become_user: bob
loop:
- { env: 'cucubeta', module: 'arrow' }
changed_when: false
ansible.builtin.command:
cmd: ~/miniforge3/envs/{{ item.env }}/bin/python -c 'import {{ item.module }}'
- name: "Check that no environments were deployed for Charlie"
become: true
become_user: charlie
register: miniforge_charlie_envs
failed_when: miniforge_charlie_envs.stdout_lines | length > 0
changed_when: false
ansible.builtin.command:
cmd: "ls ~/miniforge3/envs"