diff --git a/ansible.cfg b/ansible.cfg
index 803e98f..a7e9653 100644
--- a/ansible.cfg
+++ b/ansible.cfg
@@ -22,3 +22,4 @@ always = True
[ssh_connection]
pipelining = true
+ssh_args = -o GSSAPIAuthentication=no -o GSSAPIDelegateCredentials=no
diff --git a/dependency_resolvers_conf.xml b/dependency_resolvers_conf.xml
deleted file mode 100644
index 29a9381..0000000
--- a/dependency_resolvers_conf.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/files/pulsar_repo/0.15.6/recursive_rsync.patch b/files/pulsar_repo/0.15.6/recursive_rsync.patch
new file mode 100644
index 0000000..a83f003
--- /dev/null
+++ b/files/pulsar_repo/0.15.6/recursive_rsync.patch
@@ -0,0 +1,53 @@
+--- a/staging/down.py 2024-11-15 14:28:46.166714601 +0000
++++ b/staging/down.py 2026-04-27 14:18:40.826792741 +0000
+@@ -103,7 +103,7 @@
+ if output_generated:
+ self._attempt_collect_output('output', output_file)
+
+- for galaxy_path, pulsar in self.pulsar_outputs.output_extras(output_file).items():
++ for galaxy_path, pulsar in self.pulsar_outputs.output_extra_files_dir(output_file).items():
+ self._attempt_collect_output('output', path=galaxy_path, name=pulsar)
+ # else not output generated, do not attempt download.
+
+--- a/staging/__init__.py 2024-11-15 14:28:46.166714601 +0000
++++ b/staging/__init__.py 2026-04-27 14:12:38.332467975 +0000
+@@ -309,3 +309,19 @@
+ files_directory = "{}_files{}".format(basename(output_file)[0:-len(".dat")], self.path_helper.separator)
+ names = filter(lambda o: o.startswith(files_directory), self.output_directory_contents)
+ return dict(map(lambda name: (local_path(name), name), names))
++
++
++ def output_extra_files_dir(self, output_file):
++ """
++ Returns dict mapping local path to remote name.
++ """
++ print(output_file)
++ output_directory = dirname(output_file)
++
++ def local_path(name):
++ return join(output_directory, self.path_helper.local_name(name))
++
++ name = "{}_files{}".format(basename(output_file)[0:-len(".dat")], self.path_helper.separator)
++ edir = dict()
++ edir[local_path(name)] = name
++ return edir
+
+--- a/transport/ssh.py 2024-11-15 14:28:46.166714601 +0000
++++ b/transport/ssh.py 2026-04-27 14:05:24.769565794 +0000
+@@ -7,6 +7,7 @@
+ def rsync_get_file(uri_from, uri_to, user, host, port, key):
+ cmd = [
+ 'rsync',
++ '-src',
+ '-e',
+ 'ssh -i {} -p {} {}'.format(key, port, ' '.join(SSH_OPTIONS)),
+ '{}@{}:{}'.format(user, host, uri_from),
+@@ -19,6 +20,8 @@
+ _ensure_dir(uri_to, key, port, user, host)
+ cmd = [
+ 'rsync',
++ '-src',
++ '--chmod=F664,D775',
+ '-e',
+ 'ssh -i {} -p {} {}'.format(key, port, ' '.join(SSH_OPTIONS)),
+ uri_from,
diff --git a/group_vars/pulsarservers.yml b/group_vars/pulsarservers.yml
index 33b1b7f..d7a22b9 100644
--- a/group_vars/pulsarservers.yml
+++ b/group_vars/pulsarservers.yml
@@ -1,11 +1,22 @@
drmaa_version: 1.0.19
pbs_server: pbs-m1.metacentrum.cz
install_nfs_conda: false
+conda_auto_init: "{{ install_nfs_conda }}"
+pulsar_network_homedir: "/storage/{{ pulsar.nfs_home }}/home/{{ pulsar.user_name }}"
+
+# Miniconda settings
+miniconda_prefix: "{{ pulsar_network_homedir }}/conda"
+miniconda_exec: "{{ miniconda_prefix }}/bin/mamba"
+miniconda_version: 23.1.0
+miniconda_channels:
+ - 'bioconda'
+ - 'conda-forge'
+csnt_dependency_resolvers: {}
# only galaxyproject.pulsar role vars below
+pulsar_user: "{{ pulsar.user_name }}"
pulsar_root: /opt/pulsar
pulsar_package_version: "0.15.6"
-pulsar_network_homedir: "/storage/{{ pulsar.nfs_home }}/home/{{ pulsar.user_name }}"
pulsar_data_dir: "{{ pulsar_network_homedir }}/{{ pulsar.nfs_prefix }}"
pulsar_staging_dir: "{{ pulsar_data_dir }}/files/staging"
pulsar_cleanup_dir: "{{ pulsar_data_dir }}/files/cleanup_jobs"
@@ -13,6 +24,7 @@ pulsar_cleanup_delay: "7d" # DEMON: pulsar-re needs this to have over 30d
pulsar_persistence_dir: "{{ pulsar_root }}/files/persistent"
pulsar_dependencies_dir: "{{ pulsar_data_dir }}/deps"
pulsar_singularity_cachedir: "{{ pulsar_network_homedir }}/.singularity"
+pulsar_package_change_dir: "{{ pulsar_root }}/venv/lib/python3.11/site-packages/pulsar/client"
pulsar_separate_privileges: true
pulsar_pip_install: true
pulsar_pycurl_ssl_library: openssl
@@ -52,28 +64,9 @@ pulsar_yaml_config:
amqp_publish_retry_interval_step: 10
amqp_publish_retry_interval_max: 60
- ## DEMON: this setting is specific for RE Galaxy and pulsar-re cause usegalaxy.cz and galaxy-umsa depends only on singu;arity images
- #
- ## We also need to create the dependency resolvers configuration so pulsar knows how to find and install dependencies
- ## for the tools we ask it to run. The simplest method which covers 99% of the use cases is to use conda auto installs
- ## similar to how Galaxy works.
- #dependency_resolution:
- # resolvers:
- # - type: conda
- # auto_init: true
- # auto_install: true
- # ensure_channels: "{{ conda_channels|join(',') }}"
- # exec: "{{ conda_exec }}"
- # prefix: "{{ conda_prefix }}"
- container_resolvers:
- - type: explicit_singularity
- - cache_directory: /cvmfs/singularity.galaxyproject.org/all/
- type: cached_mulled_singularity
- - auto_install: true
- type: mulled_singularity
- - auto_install: false
- cache_directory: /cvmfs/singularity.galaxyproject.org/all/
- type: build_mulled_singularity
+ ## DEMON: resolvers is an empty list in most cases (for Galaxy supporting Singularity images over CVMFS instead of Conda)
+ dependency_resolution:
+ resolvers: "{{ csnt_dependency_resolvers }}"
managers:
_default_:
type: queued_drmaa
diff --git a/host_vars/pulsar-re2.grid.cesnet.cz/secret.yml b/host_vars/pulsar-re2.grid.cesnet.cz/secret.yml
new file mode 100644
index 0000000..e3cb3aa
--- /dev/null
+++ b/host_vars/pulsar-re2.grid.cesnet.cz/secret.yml
@@ -0,0 +1,44 @@
+$ANSIBLE_VAULT;1.1;AES256
+38363034333061383832316233613735333633653034643435663733663064323331646137633130
+6133613965393661663934646639353833656432313532630a666234396134303866303735636533
+64613538373265323631316339366335353161313937663663386633356466643533656531333136
+3735383133373535300a353731366138333731666462636261393632386263616666366466333738
+37323161303563393636616134333132306261613562323930383439343131663265326134346562
+32633732363435313935373234666532393261396237396563623830643266633936633661346632
+36333839383535343734326664393032666163373165633936333031313631343362626431623162
+61643264623464613862393635633631613136356232633663633461303931363737343236633864
+37633935616365336464316333626166343465633134336132353037343664623364623233363139
+32306139303335396135396533376231363137346339306335353137663166303132393865313438
+64333063306134396131366331656332316563653037313366633835653730333866623166316264
+39363566623931616438303034646438316564623336303335363630623165653166633431353133
+64656438323363333465323565623133343234616563316236663261363165663539343861666632
+33353166363937366265393430633738356334626263643132623637653265363831643564343434
+66313266306163356138373339346165616436613764623364386333316131303363656366356239
+32383166373139343136393537383537303130373961313761323133326637626165326134643738
+35623230353937313535656231626639636436373234333061326131376263613131643230323732
+62353231316463663462303339333364353538326333333464386635616636393061633239346464
+37313862353562363537303939656439316530323364386262373063643434343062376135316631
+61633364303632313262653336343238313133316433326439396233383264313035626136663633
+38376661656438626638363261643631366430666439346632616361353334663465376437303362
+61396133623562313863633130373331363836313536633865373363663064626639343861663061
+34326530366432383066313862656164363131353232393435653630303532336631666361313662
+33653864623034663364313562323961306637656537626637376532656166343031316565653833
+33376530323130623635343432326465313233643137323663633030306433383633323135386533
+64326339376336303130303032613936336439383565353838376438323065633035376532323933
+33613837363664303432336431306636366431323332333831663434636232323063343931363937
+31306164383031626537353766663431366265396132666563616461366132373863316464373064
+39383634376465646163653264393235646165633830663131333961366434333935663138623165
+64343563626131646136393264376565643234306530653963623431653333363161343263653431
+39346465323565633566613636323434363039633562353430303930653463323966623535643838
+35643438313563353966646262343931353331373066386234393562653734333138353937306531
+34663333323830356232643635386535666466613230383833316632316138396233656263626665
+63643531333366356339353030373435343663376563333836313038636331383966633763393864
+39363739393636363931353337336661326662326230643031633932633737613436613261333233
+61343963663164643162633662623032356662646631643834363466346530373834653338383739
+64333239653332313964323137653037636363346662623361653861636165616236353963646235
+66643132386436373836363666626339626630646136633264663336353430363566313734346265
+61616166323132353539393763626430666435623563323830616330383162613631303963656535
+64623639643461323163613837363765316431613937393361393235373537383562336537393561
+34636262643163376332353030636437323566616537666238313761346566666537353033653361
+30323531353635326332623536613631393337633361623333393863653064313531326561363636
+346562396631323335386463373335363435
diff --git a/host_vars/pulsar-re2.grid.cesnet.cz/vars.yml b/host_vars/pulsar-re2.grid.cesnet.cz/vars.yml
new file mode 100644
index 0000000..4ab40c5
--- /dev/null
+++ b/host_vars/pulsar-re2.grid.cesnet.cz/vars.yml
@@ -0,0 +1,30 @@
+# Galaxy/Pulsar user setup
+pulsar:
+ user_name: galaxyelixir
+ uid: 2469
+ gid: 10145
+ group: galaxyelixir
+ nfs_home: "brno11-elixir"
+ nfs_prefix: pulsar-re
+
+miniconda_channels:
+ - 'bioconda'
+ - 'conda-forge'
+ - 'petrnovak'
+miniconda_prefix: "/storage/{{ pulsar.nfs_home }}/home/{{ pulsar.user_name }}/anaconda3"
+miniconda_exec: "{{ miniconda_prefix }}/bin/mamba"
+
+pulsar_cleanup_delay: "40d" # DEMON: pulsar-re* need this to have over 30d
+csnt_dependency_resolvers:
+ - type: conda
+ auto_init: true
+ auto_install: true
+ ensure_channels: "{{ miniconda_channels|join(',') }}"
+ exec: "{{ miniconda_exec }}"
+ prefix: "{{ miniconda_prefix }}"
+
+# Put your Galaxy server's fully qualified domain name (FQDN) (or the FQDN of the RabbitMQ server) above.
+rabbitmq_hostname: "galaxy-re.grid.cesnet.cz" # DEMON: Important to have proper FQDN of connected Galaxy server (or at least RabbitMQ server)
+rabbitmq_vhost: "pulsar2" # DEMON: must be the same rabbitmq vhost set for communication between Galaxy and Pulsar set on Galaxy side
+rabbitmq_user: "{{ pulsar.user_name }}" # DEMON: must be user running connected Galaxy server
+rabbitmq_port: 5671 # DEMON: must be port where to contact RabbitMQ server
diff --git a/hosts.yml b/hosts.yml
index ca51026..c00295d 100644
--- a/hosts.yml
+++ b/hosts.yml
@@ -4,6 +4,8 @@ nometapuppet:
ansible_user: debian
pulsar-qa2.galaxy.cloud.e-infra.cz:
ansible_user: debian
+ pulsar-re2.grid.cesnet.cz:
+ ansible_user: debian
pulsarservers:
hosts:
@@ -15,6 +17,8 @@ pulsarservers:
ansible_user: debian
pulsar-re.grid.cesnet.cz:
ansible_user: root
+ pulsar-re2.grid.cesnet.cz:
+ ansible_user: debian
pulsar-cz.grid.cesnet.cz:
ansible_user: debian
pulsar-eu.grid.cesnet.cz:
diff --git a/pulsar.yml b/pulsar.yml
index 23c316f..6b6d00c 100644
--- a/pulsar.yml
+++ b/pulsar.yml
@@ -4,23 +4,6 @@
become: yes
- hosts: pulsarservers
- vars:
- pulsar_user: "{{ pulsar.user_name }}"
- pbs_drmaa_version: "1.0.19"
-
- # Miniconda settings
- miniconda_prefix: "{{ pulsar_network_homedir }}/conda"
- miniconda_version: 23.1.0
- miniconda_base_env_packages: ['mamba']
- miniconda_channels:
- - 'conda-forge'
- - 'bioconda'
- - 'iuc'
- - 'r'
- - 'anaconda'
- - 'petrnovak' # DEMON: this is pecific for RE Galaxy and pulsar-re but could be usefull also for usegalaxy.cz if using RE tools
- - 'defaults'
-
pre_tasks:
- group:
name: "{{ pulsar.group }}"
@@ -51,12 +34,18 @@
become_user: "{{ pulsar.user_name }}"
post_tasks:
- ## DEMON: This task might be necessary to comment out for pulsar-re
- - name: copy dependency_resolvers_config into pulsar config folder
- ansible.builtin.copy:
- src: dependency_resolvers_conf.xml
- dest: "{{ pulsar_root }}/config/dependency_resolvers_conf.xml"
+ - name: Apply recursive rsync changes in pulsar package
+ ansible.posix.patch:
+ src: "files/pulsar_repo/{{ pulsar_package_version }}/recursive_rsync.patch"
+ basedir: "{{ pulsar_package_change_dir }}"
+ backup: true
+ strip: 1
+ - name: Restart pulsar service after change
+ ansible.builtin.systemd:
+ state: restarted
+ name: "{{ pulsar_systemd_service_name }}"
become: yes
+
- name: Create .drmaa folder in NFS home
ansible.builtin.file:
path: "{{ pulsar_network_homedir }}/.drmaa"
diff --git a/roles/galaxyproject.miniconda/README.md b/roles/galaxyproject.miniconda/README.md
deleted file mode 100644
index 51dc2ab..0000000
--- a/roles/galaxyproject.miniconda/README.md
+++ /dev/null
@@ -1,69 +0,0 @@
-galaxyproject.miniconda
-=======================
-
-An [Ansible][ansible] role for installing and managing [Miniconda][miniconda] installation. Additionally, the role can
-manage the creation of a [Conda][conda] environment that can be used to create a [venv][venv] for [Galaxy][galaxy].
-
-[ansible]: https://www.ansible.com/
-[miniconda]: https://docs.conda.io/en/latest/miniconda.html
-[conda]: https://docs.conda.io/en/latest/
-[venv]: https://docs.python.org/3/tutorial/venv.html
-[galaxy]: https://galaxyproject.org/
-
-Requirements
-------------
-
-A [Conda][conda]-compatible version of Linux or macOS is required.
-
-Role Variables
---------------
-
-See [defaults/main.yml](defaults/main.yml) for a full list.
-
-The only required variable is `miniconda_prefix`, the root of the Conda installation.
-
-To create arbitrary conda environments, use the variable `miniconda_conda_environments` as shown in the defaults, or the
-example below. The role will also run `conda install` to update these environments if you change their list of packages
-or package versions.
-
-To create an env named `_galaxy_` for creating a venv for [Galaxy][galaxy], set `galaxy_conda_create_env` to `true`. You
-can then use `{{ miniconda_prefix }}/envs/_galaxy_/bin/virtualenv` as the value to `galaxy_virtualenv_command` in
-[galaxyproject.galaxy][galaxy-role]. This is particularly useful if you need a cross-platform copy of Python and
-Galaxy's venv to be deployed on a shared filesystem between a Galaxy server and cluster that may not have matching OS
-distributions and versions.
-
-[galaxy-role]: https://github.com/galaxyproject/ansible-galaxy
-
-Dependencies
-------------
-
-None
-
-Example Playbook
-----------------
-
-```yaml
-- hosts: localhost
- vars:
- miniconda_prefix: /conda
- miniconda_conda_environments:
- python@3.9:
- channels: # optional, defaults to miniconda_channels
- - conda-forge
- - defaults
- packages:
- - python=3.9
- connection: local
- roles:
- - galaxyproject.miniconda
-```
-
-License
--------
-
-MIT
-
-Author Information
-------------------
-
-[View contributors on GitHub](https://github.com/galaxyproject/ansible-miniconda/graphs/contributors)
diff --git a/roles/galaxyproject.miniconda/defaults/main.yml b/roles/galaxyproject.miniconda/defaults/main.yml
deleted file mode 100644
index ae43fef..0000000
--- a/roles/galaxyproject.miniconda/defaults/main.yml
+++ /dev/null
@@ -1,58 +0,0 @@
----
-
-# Installers are not released for every version of conda, you can use this to
-# `conda install conda={{ miniconda_version }}` a specific version of conda. If set to `latest` then the role will
-# perform a `conda update conda` instead.
-miniconda_version: latest
-
-# If you wish to install e.g. a conda-forge version of conda you can do so by setting channels. This causes
-# `--override-channels --channel [--channel ...]` to be specified on the call to
-# `conda install conda...` or `conda update conda`.
-miniconda_channels: []
-
-# Use a specific installer version and python version. The default is to use the latest installer. If you specify a
-# version, it must exist in https://repo.anaconda.com/miniconda/
-#
-# The Python major and minor version e.g. '3.9' (or '39') of the installer
-miniconda_installer_python: null
-# The conda version of the installer
-miniconda_installer_version: latest
-
-# List packages to install into conda's base environment
-# e.g.
-# miniconda_base_env_packages: ['mamba']
-miniconda_base_env_packages: []
-
-# Create environments using the provided description. e.g.:
-#
-# miniconda_conda_environments:
-# python@3.9:
-# channels: # optional, defaults to miniconda_channels
-# - conda-forge
-# - defaults
-# packages:
-# - python=3.9
-miniconda_conda_environments: {}
-
-# Automatically create a conda env using virtualenv from conda-forge for Galaxy (https://galaxyproject.org/)
-galaxy_conda_create_env: false
-galaxy_conda_env: _galaxy_
-galaxy_conda_env_channels:
- - conda-forge
- - defaults
-galaxy_conda_env_packages:
- - python=3.6
- - pip>=9
- - virtualenv>=16
-
-# You generally should not need to set these yourself
-#
-# ansible_distribution is 'MacOSX' if ansible_system is 'Darwin'
-# ansible_system is 'Linux' on Linux
-miniconda_installer_os: "{{ ansible_distribution if ansible_system == 'Darwin' else ansible_system }}"
-miniconda_installer_arch: "{{ ansible_architecture }}"
-# The installer filename on https://repo.anaconda.com/miniconda/ to fetch and run
-miniconda_installer: >-
- Miniconda3-{{ 'py' ~ (miniconda_python | replace('.', '')) ~ '_' ~ miniconda_version if miniconda_installer_version != 'latest' else 'latest' }}-{{ miniconda_installer_os }}-{{ miniconda_installer_arch }}.sh
-# The shell to call the downloaded installer script with
-miniconda_installer_shell: /bin/sh
diff --git a/roles/galaxyproject.miniconda/meta/.galaxy_install_info b/roles/galaxyproject.miniconda/meta/.galaxy_install_info
deleted file mode 100644
index 3b859ac..0000000
--- a/roles/galaxyproject.miniconda/meta/.galaxy_install_info
+++ /dev/null
@@ -1,2 +0,0 @@
-install_date: Mon Mar 27 12:26:27 2023
-version: 0.3.1
diff --git a/roles/galaxyproject.miniconda/meta/main.yml b/roles/galaxyproject.miniconda/meta/main.yml
deleted file mode 100644
index 474e62f..0000000
--- a/roles/galaxyproject.miniconda/meta/main.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-galaxy_info:
- namespace: galaxyproject
- role_name: miniconda
- author: The Galaxy Project
- description: |
- Install and maintain a Miniconda (https://docs.conda.io/en/latest/miniconda.html) installation, and optionally, for Galaxy (https://galaxyproject.org/)
- company: The Galaxy Project
- license: MIT
- min_ansible_version: 2.7
- github_branch: main
- platforms:
- - name: GenericLinux
- versions:
- - all
- - name: macOS
- versions:
- - all
- - name: MacOSX
- versions:
- - 10.13
- - 10.14
- galaxy_tags:
- - system
- - galaxy
- - conda
- - miniconda
-dependencies: []
diff --git a/roles/galaxyproject.miniconda/tasks/install.yml b/roles/galaxyproject.miniconda/tasks/install.yml
deleted file mode 100644
index 8d39383..0000000
--- a/roles/galaxyproject.miniconda/tasks/install.yml
+++ /dev/null
@@ -1,26 +0,0 @@
----
-
-- name: Create miniconda installer tempfile
- tempfile:
- prefix: ansible-miniconda-installer.
- suffix: .sh
- register: miniconda_installer_tempfile
-
-- name: Collect miniconda installer
- get_url:
- url: "https://repo.anaconda.com/miniconda/{{ miniconda_installer }}"
- dest: "{{ miniconda_installer_tempfile.path }}"
- force: true
-
-- name: miniconda installer block
- block:
-
- - name: Run miniconda installer
- command: "{{ miniconda_installer_shell }} {{ miniconda_installer_tempfile.path }} -b -p {{ miniconda_prefix }}"
-
- always:
-
- - name: Remove minicoda installer
- file:
- path: "{{ miniconda_installer_tempfile.path }}"
- state: absent
diff --git a/roles/galaxyproject.miniconda/tasks/main.yml b/roles/galaxyproject.miniconda/tasks/main.yml
deleted file mode 100644
index 180bbdd..0000000
--- a/roles/galaxyproject.miniconda/tasks/main.yml
+++ /dev/null
@@ -1,78 +0,0 @@
----
-
-- name: Check for miniconda existence
- stat:
- path: "{{ miniconda_prefix }}/bin/conda"
- register: miniconda_exists
-
-- name: Include install tasks
- include_tasks: install.yml
- when: not miniconda_exists.stat.exists
-
-- name: Collect miniconda version
- command: "{{ miniconda_prefix }}/bin/conda -V"
- register: miniconda_installed_version
- changed_when: false
-
-- name: Update miniconda version (exact)
- command: >-
- {{ miniconda_prefix }}/bin/conda install --yes
- {{ '--override-channels --channel' if miniconda_channels else '' }}
- {{ miniconda_channels | join(' --channel ') }}
- conda={{ miniconda_version }}
- when: miniconda_version != 'latest' and (miniconda_installed_version.stdout.split() | last) != miniconda_version
-
-- name: Update miniconda version (latest)
- command: >-
- {{ miniconda_prefix }}/bin/conda update --yes
- {{ '--override-channels --channel' if miniconda_channels else '' }}
- {{ miniconda_channels | join(' --channel ') }}
- conda
- register: __miniconda_conda_update_conda_output
- changed_when: "'All requested packages already installed' not in __miniconda_conda_update_conda_output.stdout"
- when: miniconda_version == 'latest'
-
-- name: Install packages to conda base environment
- command: >-
- {{ miniconda_prefix }}/bin/conda install --yes
- {{ '--override-channels --channel' if (miniconda_channels) else '' }}
- {{ miniconda_channels | join(' --channel ') }}
- {{ miniconda_base_env_packages | join(' ') }}
- when: miniconda_base_env_packages
-
-# Apparently item.value.copy always refers to the built-in copy method of the dict, whereas item.value['copy'] only does
-# if the key 'copy' is not defined
-- name: Create conda envs
- command: >-
- {{ miniconda_prefix }}/bin/conda create --yes
- {{ '--override-channels --channel' if (item.value.channels | default(miniconda_channels)) else '' }}
- {{ (item.value.channels | default(miniconda_channels)) | join(' --channel ') }}
- {{ '--name ' ~ item.key if not item.key.startswith('/') else '--prefix ' ~ item.key }}
- {{ '--copy' if (item.value['copy'] is boolean and item.value['copy']) else '' }}
- {{ item.value.packages | join(' ') }}
- args:
- creates: "{{ miniconda_prefix ~ '/envs/' ~ item.key if not item.key.startswith('/') else item.key }}"
- loop: "{{ miniconda_conda_environments | dict2items }}"
-
-- name: Update conda envs
- command: >-
- {{ miniconda_prefix }}/bin/conda install --yes
- {{ '--override-channels --channel' if (item.value.channels | default(miniconda_channels)) else '' }}
- {{ (item.value.channels | default(miniconda_channels)) | join(' --channel ') }}
- {{ '--name ' ~ item.key if not item.key.startswith('/') else '--prefix ' ~ item.key }}
- {{ '--copy' if (item.value['copy'] is boolean and item.value['copy']) else '' }}
- {{ item.value.packages | join(' ') }}
- register: __miniconda_conda_install_output
- changed_when: "'All requested packages already installed' not in __miniconda_conda_install_output.stdout"
- loop: "{{ miniconda_conda_environments | dict2items }}"
-
-- name: Create Galaxy conda env
- command: >-
- {{ miniconda_prefix }}/bin/conda create --yes
- {{ '--override-channels --channel' if galaxy_conda_env_channels else '' }}
- {{ galaxy_conda_env_channels | join(' --channel ') }}
- --name {{ galaxy_conda_env }}
- {{ galaxy_conda_env_packages | join(' ') }}
- args:
- creates: "{{ miniconda_prefix }}/envs/{{ galaxy_conda_env }}"
- when: galaxy_conda_create_env
diff --git a/roles/galaxyproject.miniconda/tests/inventory b/roles/galaxyproject.miniconda/tests/inventory
deleted file mode 100644
index 878877b..0000000
--- a/roles/galaxyproject.miniconda/tests/inventory
+++ /dev/null
@@ -1,2 +0,0 @@
-localhost
-
diff --git a/roles/galaxyproject.miniconda/tests/test.yml b/roles/galaxyproject.miniconda/tests/test.yml
deleted file mode 100644
index 3a39277..0000000
--- a/roles/galaxyproject.miniconda/tests/test.yml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-- hosts: localhost
- remote_user: root
- vars:
- miniconda_prefix: "{{ lookup('env', 'TRAVIS_BUILD_DIR') }}/conda"
- roles:
- - ansible-miniconda
diff --git a/roles/metacentrum.krbnfs/tasks/main.yml b/roles/metacentrum.krbnfs/tasks/main.yml
index 780aa98..8ff8b51 100644
--- a/roles/metacentrum.krbnfs/tasks/main.yml
+++ b/roles/metacentrum.krbnfs/tasks/main.yml
@@ -10,7 +10,7 @@
- name: Metacentrum repo key
apt_key:
url: https://repo.metacentrum.cz/key.asc
- id: F11383F552848522E4EACA443573FD94A385CDB0
+ id: 3CCAEBFDC3398E762111FB2B403875C13E1F1A7D
when: ansible_os_family == 'Debian'
- name: Metacentrum repo