44 lines
1.9 KiB
YAML
44 lines
1.9 KiB
YAML
---
|
|
- block:
|
|
- name: Find the user home directory path
|
|
getent: database=passwd key={{ conda_user }} split=":"
|
|
|
|
- name: Create a downloads directory if does not exist
|
|
file: dest={{ getent_passwd[conda_user][4] }}/downloads state=directory
|
|
|
|
- name: Download the conda installer
|
|
get_url: url={{ conda_url }} dest={{ getent_passwd[conda_user][4] }}/downloads mode=0744
|
|
|
|
- name: Run the conda installer
|
|
command: '{{ getent_passwd[conda_user][4] }}/downloads/{{ conda_installer_file }} -f -b -p {{ conda_install_prefix }}'
|
|
args:
|
|
creates: '{{ conda_install_prefix }}/bin/conda'
|
|
|
|
become: True
|
|
become_user: '{{ conda_user }}'
|
|
tags: [ 'python', 'conda' ]
|
|
|
|
- block:
|
|
- name: Create a conda environment
|
|
shell: export PATH={{ conda_install_prefix }}/bin:{{ ansible_env.PATH }} ; {{ conda_install_prefix }}/bin/conda create -y -n {{ item.env_name }} {{ item.env_opts }}
|
|
environment:
|
|
PATH: 'PATH={{ conda_install_prefix }}/bin:{{ ansible_env.PATH }}'
|
|
args:
|
|
creates: '{{ conda_install_prefix }}/envs/{{ item.env_name }}'
|
|
executable: /bin/bash
|
|
with_items: '{{ conda_env_pkgs }}'
|
|
|
|
- name: Install additional packages and libraries inside the conda environment
|
|
shell: export PATH={{ conda_install_prefix }}/bin:{{ ansible_env.PATH }} ; source {{ conda_install_prefix }}/bin/activate {{ item.env_name }} ; {{ conda_install_prefix }}/bin/conda install -y {{ item.repo_list }} {{ item.pkg }} ; touch {{ conda_install_prefix }}/envs/{{ item.env_name }}/.{{ item.pkg }}
|
|
environment:
|
|
PATH: 'PATH={{ conda_install_prefix }}/bin:{{ ansible_env.PATH }}'
|
|
args:
|
|
executable: /bin/bash
|
|
creates: '{{ conda_install_prefix }}/envs/{{ item.env_name }}/.{{ item.pkg }}'
|
|
with_items: '{{ conda_env_pkgs }}'
|
|
|
|
become: True
|
|
become_user: '{{ conda_user }}'
|
|
when: conda_env_pkgs is defined
|
|
tags: [ 'python', 'conda', 'conda_env' ]
|