diff --git a/ansible/roles/10-include-50-miniconda/defaults/main.yml.example b/ansible/roles/10-include-50-miniconda/defaults/main.yml.example index 58eb7e9..73467c8 100644 --- a/ansible/roles/10-include-50-miniconda/defaults/main.yml.example +++ b/ansible/roles/10-include-50-miniconda/defaults/main.yml.example @@ -1,7 +1,12 @@ miniconda_install_dir: '/opt/miniconda3' miniconda_bin_dir: '{{ miniconda_install_dir }}/bin' +miniconda_envs_dir: '{{ miniconda_install_dir }}/envs' +miniconda_conda_binary: '{{ miniconda_bin_dir }}/conda' 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 }}' +conda_envs_template_dir: '_conda_envs_dir_' +conda_python_version: '3' +conda_package_spec: 'pip' diff --git a/ansible/roles/10-include-50-miniconda/tasks/50-setup-miniconda-env.yml b/ansible/roles/10-include-50-miniconda/tasks/50-setup-miniconda-env.yml index e3e64a7..39ff676 100644 --- a/ansible/roles/10-include-50-miniconda/tasks/50-setup-miniconda-env.yml +++ b/ansible/roles/10-include-50-miniconda/tasks/50-setup-miniconda-env.yml @@ -1,3 +1,55 @@ +- name: 'Set conda env file basename' + tags: + - 'testing' + set_fact: + conda_env_file_base: '{{ conda_env_file | basename }}' + + + +- name: 'Set conda env file absolute path' + tags: + - 'testing' + set_fact: + conda_env_file_abs: '{{ miniconda_envs_dir }}/{{ conda_env_file_base | regex_search(''.*?\.yml'', ''\0'') | first }}' + + + +- name: 'Set conda env name' + tags: + - 'testing' + set_fact: + conda_env_name: '{{ conda_env_file_base | regex_search(''(.*?)(_conda_environment.yml)'', ''\1'') | first }}' + + + +- name: 'Store conda environment.yml file' + ansible.builtin.template: + src: '{{ conda_env_file }}' + dest: '{{ conda_env_file_abs }}' + + + +- name: 'Set up conda env ''{{ conda_env_name }}''' + tags: + - 'testing' + register: 'rv_conda_env_install' + changed_when: 'not rv_conda_env_install.stderr' + failed_when: 'false' + ansible.builtin.shell: '{{ miniconda_conda_binary }} env create --quiet --file ''{{ conda_env_file_abs }}''' + + + +# +#- name: Display paths of all .txt files in dir +# tags: +# - 'testing' +# ansible.builtin.debug: msg={{ lookup('ansible.builtin.fileglob', '_conda_envs_dir_/**', wantlist=True) }} + +- name: 'Debug vars' + tags: + - 'testing' + debug: + msg: 'asd' diff --git a/ansible/roles/10-include-50-miniconda/tasks/main.yml b/ansible/roles/10-include-50-miniconda/tasks/main.yml index 69f0764..b1f5822 100644 --- a/ansible/roles/10-include-50-miniconda/tasks/main.yml +++ b/ansible/roles/10-include-50-miniconda/tasks/main.yml @@ -1 +1,10 @@ -- import_tasks: '50-setup-miniconda-env.yml' +- import_tasks: '40-install-miniconda.yml' +- name: 'Set up conda environment' + tags: + - 'testing' + loop_control: + loop_var: 'conda_env' + loop: '{{ lookup(''ansible.builtin.fileglob'', ''{{ role_path }}/templates/{{ conda_envs_template_dir }}/*'', wantlist=True) | map(''regex_search'', conda_envs_template_dir + ''/.*?_conda_environment.yml.j2'') }}' + vars: + conda_env_file: '{{ conda_env }}' + include_tasks: '50-setup-miniconda-env.yml' diff --git a/ansible/roles/10-include-50-miniconda/templates/_conda_envs_dir_/cookiecutter_conda_environment.yml.j2 b/ansible/roles/10-include-50-miniconda/templates/_conda_envs_dir_/cookiecutter_conda_environment.yml.j2 new file mode 100644 index 0000000..1f433fd --- /dev/null +++ b/ansible/roles/10-include-50-miniconda/templates/_conda_envs_dir_/cookiecutter_conda_environment.yml.j2 @@ -0,0 +1,7 @@ +name: cookiecutter +channels: + - defaults +dependencies: + - python=3 + - pip +prefix: {{ miniconda_envs_dir }}/cookiecutter diff --git a/ansible/roles/10-include-50-miniconda/templates/_conda_envs_dir_/update-firewall-source_conda_environment.yml.j2 b/ansible/roles/10-include-50-miniconda/templates/_conda_envs_dir_/update-firewall-source_conda_environment.yml.j2 new file mode 100644 index 0000000..bd2cb89 --- /dev/null +++ b/ansible/roles/10-include-50-miniconda/templates/_conda_envs_dir_/update-firewall-source_conda_environment.yml.j2 @@ -0,0 +1,7 @@ +name: update-firewall-source +channels: + - defaults +dependencies: + - python=3 + - pip +prefix: {{ miniconda_envs_dir }}/update-firewall-source diff --git a/ansible/roles/50-service-mailcow/tasks/40-install-mailcow.yml b/ansible/roles/50-service-mailcow/tasks/40-install-mailcow.yml index f2f6d17..a7d4213 100644 --- a/ansible/roles/50-service-mailcow/tasks/40-install-mailcow.yml +++ b/ansible/roles/50-service-mailcow/tasks/40-install-mailcow.yml @@ -26,27 +26,28 @@ - name: 'Install Miniconda' tags: - 'testing' + - 'testing' ansible.builtin.include_role: name: '10-include-50-miniconda' - tasks_from: '40-install-miniconda' + # tasks_from: '40-install-miniconda' -- name: 'Install Miniconda' - loop_control: - loop_var: 'conda' - loop: - - { task: 'setup', data: 'alter' } - - { task: 'setup', data: 'wasn' } - - { task: 'setup', data: 'digger' } - vars: - task: '{{ conda.task }}' - data: '{{ conda.data }}' - ansible.builtin.include_role: - name: '10-include-50-miniconda' - tasks_from: '40-install-miniconda' - +#- name: 'Set up Miniconda env' +# tags: +# - 'testing' +# loop_control: +# loop_var: 'conda' +# loop: +# - { env_name: 'cookiecutter', python_version: '3', package_spec: 'pip' } +# - { env_name: 'update-firewall-source', python_version: '3', package_spec: 'pip' } +# vars: +# env_name: '{{ conda.env_name }}' +# python_version: '{{ conda.python_version }}' +# package_spec: '{{ conda.package_spec }}' +# ansible.builtin.include_role: +# name: '10-include-50-miniconda' +# - name: 'Populate service facts'