Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions ansible.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ always = True

[ssh_connection]
pipelining = true
ssh_args = -o GSSAPIAuthentication=no -o GSSAPIDelegateCredentials=no
2 changes: 0 additions & 2 deletions dependency_resolvers_conf.xml

This file was deleted.

53 changes: 53 additions & 0 deletions files/pulsar_repo/0.15.6/recursive_rsync.patch
Original file line number Diff line number Diff line change
@@ -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,
39 changes: 16 additions & 23 deletions group_vars/pulsarservers.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,30 @@
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"
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
Expand Down Expand Up @@ -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
Expand Down
44 changes: 44 additions & 0 deletions host_vars/pulsar-re2.grid.cesnet.cz/secret.yml
Original file line number Diff line number Diff line change
@@ -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
30 changes: 30 additions & 0 deletions host_vars/pulsar-re2.grid.cesnet.cz/vars.yml
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions hosts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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:
Expand Down
30 changes: 7 additions & 23 deletions pulsar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }}"
Expand Down Expand Up @@ -51,12 +34,13 @@
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"
become: yes
- 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: Create .drmaa folder in NFS home
ansible.builtin.file:
path: "{{ pulsar_network_homedir }}/.drmaa"
Expand Down
69 changes: 0 additions & 69 deletions roles/galaxyproject.miniconda/README.md

This file was deleted.

58 changes: 0 additions & 58 deletions roles/galaxyproject.miniconda/defaults/main.yml

This file was deleted.

2 changes: 0 additions & 2 deletions roles/galaxyproject.miniconda/meta/.galaxy_install_info

This file was deleted.

Loading