feat(conda): Add import to install Miniconda on target
This commit is contained in:
parent
57c778c543
commit
2c53e26bbb
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,6 +2,7 @@
|
|||||||
*.retry
|
*.retry
|
||||||
ansible/hosts.yml
|
ansible/hosts.yml
|
||||||
ansible/group_vars/all/*
|
ansible/group_vars/all/*
|
||||||
|
ansible/roles/10-include-50-miniconda/defaults/*
|
||||||
ansible/roles/20-common-20-ssh/defaults/*
|
ansible/roles/20-common-20-ssh/defaults/*
|
||||||
ansible/roles/20-common-20-ssh/files/root/.ssh/*
|
ansible/roles/20-common-20-ssh/files/root/.ssh/*
|
||||||
!*.example
|
!*.example
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
miniconda_install_dir: '/opt/miniconda3'
|
||||||
|
miniconda_bin_dir: '{{ miniconda_install_dir }}/bin'
|
||||||
|
miniconda_installer_dl_dir: '{{ miniconda_install_dir }}/_downloaded-installer'
|
||||||
|
miniconda_dl_uri_base: 'https://repo.anaconda.com/miniconda/'
|
||||||
|
miniconda_dl_uri_file: 'Miniconda3-latest-Linux-x86_64.sh'
|
||||||
|
miniconda_dl_uri: '{{ miniconda_dl_uri_base }}{{ miniconda_dl_uri_file }}'
|
||||||
|
miniconda_dl_local_abs: '{{ miniconda_installer_dl_dir }}/{{ miniconda_dl_uri_file }}'
|
@ -0,0 +1 @@
|
|||||||
|
auto_activate_base: false
|
@ -0,0 +1,87 @@
|
|||||||
|
- name: 'Create Miniconda base dir'
|
||||||
|
loop_control:
|
||||||
|
loop_var: 'conda_dir'
|
||||||
|
loop:
|
||||||
|
- { path: '{{ miniconda_install_dir }}', state: 'directory' }
|
||||||
|
- { path: '{{ miniconda_installer_dl_dir }}', state: 'directory' }
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: '{{ conda_dir.path }}'
|
||||||
|
state: '{{ conda_dir.state }}'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- name: 'Download latest Miniconda installer'
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: '{{ miniconda_dl_uri }}'
|
||||||
|
dest: '{{ miniconda_dl_local_abs }}'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- name: 'Set execute bit on Miniconda installer'
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: '{{ miniconda_dl_local_abs }}'
|
||||||
|
mode: 'a+x'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- name: 'Get Miniconda installer help output'
|
||||||
|
register: 'rv_miniconda_installer_help'
|
||||||
|
changed_when: 'rv_miniconda_installer_help.rc != 2'
|
||||||
|
failed_when: 'rv_miniconda_installer_help.rc != 2'
|
||||||
|
ansible.builtin.shell: '{{ miniconda_dl_local_abs }} -h'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- name: 'Get Miniconda installer version from help output'
|
||||||
|
when: 'rv_miniconda_installer_help.rc == 2'
|
||||||
|
set_fact:
|
||||||
|
miniconda_installer_version: '{{ rv_miniconda_installer_help.stdout | regex_search(''Installs Miniconda3 (py.*?_)(.*?)(\n)'', ''\2'') }}'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- name: 'Get conda version output'
|
||||||
|
register: 'rv_conda_version_output'
|
||||||
|
changed_when: 'rv_conda_version_output.rc != 0'
|
||||||
|
failed_when: 'false'
|
||||||
|
ansible.builtin.shell: 'conda --version 2> ''/dev/null'''
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- name: 'Get conda version from version output'
|
||||||
|
register: 'rv_conda_version'
|
||||||
|
changed_when: '(not conda_version) or (rv_conda_version_output.rc != 0)'
|
||||||
|
failed_when: 'false'
|
||||||
|
set_fact:
|
||||||
|
conda_version: '{{ rv_conda_version_output.stdout | regex_search(''conda ([^\r\n\f]+)'', ''\1'') }}'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- name: 'If Miniconda old or missing: install it'
|
||||||
|
when: '(miniconda_installer_version | first is version(''4.11.9'', ''>'')) or (not conda_version)'
|
||||||
|
register: 'rv_miniconda_install'
|
||||||
|
ansible.builtin.shell: '{{ miniconda_dl_local_abs }} -b -p ''{{ miniconda_install_dir }}'' -u'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- name: 'If Miniconda was installed: Initialize'
|
||||||
|
when: 'rv_miniconda_install.changed'
|
||||||
|
register: 'rv_conda_init'
|
||||||
|
ansible.builtin.shell: '{{ miniconda_conda_binary }} init'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- name: 'Set ~/.condarc file'
|
||||||
|
tags:
|
||||||
|
- 'testing'
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: '_current_user_home_/.condarc'
|
||||||
|
dest: '{{ ansible_env.HOME }}/.condarc'
|
||||||
|
mode: '0644'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- name: 'Debug vars'
|
||||||
|
tags:
|
||||||
|
- 'testing'
|
||||||
|
debug:
|
||||||
|
msg: '{{ ansible_env.HOME }}'
|
1
ansible/roles/10-include-50-miniconda/tasks/main.yml
Normal file
1
ansible/roles/10-include-50-miniconda/tasks/main.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
- import_tasks: '50-setup-miniconda-env.yml'
|
Loading…
x
Reference in New Issue
Block a user