Migrate the role
This commit is contained in:
29
roles/miniforge/molecule/default/converge.yml
Normal file
29
roles/miniforge/molecule/default/converge.yml
Normal 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]
|
||||
10
roles/miniforge/molecule/default/manifests/project-alpha.yml
Normal file
10
roles/miniforge/molecule/default/manifests/project-alpha.yml
Normal 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
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
name: cucubeta
|
||||
channels:
|
||||
- conda-forge
|
||||
dependencies:
|
||||
- python~=3.10
|
||||
- pip>=22.2
|
||||
- pip:
|
||||
- arrow
|
||||
27
roles/miniforge/molecule/default/molecule.yml
Normal file
27
roles/miniforge/molecule/default/molecule.yml
Normal 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 .
|
||||
50
roles/miniforge/molecule/default/verify.yml
Normal file
50
roles/miniforge/molecule/default/verify.yml
Normal 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"
|
||||
Reference in New Issue
Block a user