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
182 changes: 94 additions & 88 deletions dokku.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,8 @@
- name: Dokku App Server
hosts: dokku
become: true
vars:
hostname: apps.galaxyproject.eu
apps:
- ptdk
- pwdk
- oembed
- certificates
- gtn-slack-bot
- dnanalyzer
- cors
dokku_plugins:
- name: postgres
url: https://github.com/dokku/dokku-postgres.git
- name: letsencrypt
url: https://github.com/dokku/dokku-letsencrypt.git
- name: redis
url: https://github.com/dokku/dokku-redis.git
# - name: acl
# url: https://github.com/dokku/dokku-acl.git
dokku_users:
- name: hexylena
username: hexylena
ssh_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEEurxSQW4BrpP9FLXqiz/H6Ewclln68oc/oFAVqH5xu"
- name: github
username: github
ssh_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG0UpPcbt0ytqZSRiqC38cgT1Ey2jWqc/oEgzTpUncA8"
- name: github2
username: github2
ssh_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFGzr8JWnnCQo+565kzpXKYP12kLt2oyWzFCF/cueIvO"
- name: oembed
username: oembed
ssh_key: "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLkuOlVUXxCqABoQbTEvW3A8nSSici89C10lEg1F4Cmvv/q8YRGYaoDayuqifFJERWvRA8yVcIH7/XCPzmMrLM0="
vars_files:
- secret_group_vars/all.yml
pre_tasks:
# make sure /data exists
- name: Ensure /data exists
Expand All @@ -51,89 +21,125 @@
fstype: xfs
state: mounted
opts: defaults
# - name: Install Docker
# ansible.builtin.include_role:
# name: geerlingguy.docker
# Create a symlink in /var/lib/docker to /data/docker
- name: Create a symlink in /var/lib/docker to /data/docker
file:
src: /data/docker
dest: /var/lib/docker
src: /var/lib/docker
dest: /data/docker
state: link
roles:
- hostname
- dokku_bot.ansible_dokku
post_tasks:
- name: Create our apps
dokku_app:
app: "{{ item }}"
- name: Create apps
community.docker.docker_container_exec:
container: dokku
command: "dokku apps:create {{ item }}"
register: app_results
with_items: "{{ apps }}"
ignore_errors: true

- name: Setup domains
dokku_domains:
app: "{{ item }}"
domains:
- "{{ item }}.apps.galaxyproject.eu"
state: set
- name: Check if successful
ansible.builtin.fail:
msg: "{{ item.stderr }}"
with_items: "{{ app_results.results }}"
when: item.rc != 0 and not "Name is already taken" in item.stderr

- name: Check domains
community.docker.docker_container_exec:
container: dokku
command: "dokku domains:report {{ item }}"
with_items: "{{ apps }}"
register: domain_results

- name: Setup domains
community.docker.docker_container_exec:
container: dokku
command: "dokku domains:add {{ item }} {{ item }}.apps.galaxyproject.eu"
loop: "{{ apps | flatten(levels=1) }}"
loop_control:
index_var: idx
when: domain_results.results[idx].rc == 0 and not "item.apps.galaxyproject.eu" in domain_results.results[idx].stderr

- name: Get ptdk env variable
community.docker.docker_container_exec:
container: dokku
command: "dokku config:get ptdk USEGALAXY_EU_APIKEY"
register: ptdk_env
no_log: true
ignore_errors: true

- name: Set ptdk env variable
community.docker.docker_container_exec:
container: dokku
command: "dokku config:set ptdk USEGALAXY_EU_APIKEY={{ admin_api_key_maintenance }}"
when: not admin_api_key_maintenance in ptdk_env.stdout or ptdk_env.rc != 0
no_log: true


- name: Check if DNAnalyzer postgres exists
shell: dokku postgres:exists dnanalyzer
community.docker.docker_container_exec:
container: dokku
command: dokku postgres:exists dnanalyzer
register: pg_exists
changed_when: false
ignore_errors: true

- name: Create DNAnalyzer postgres
shell: dokku postgres:create dnanalyzer
community.docker.docker_container_exec:
container: dokku
command: dokku postgres:create dnanalyzer
changed_when: pg_exists.rc == 1
when: pg_exists.rc == 1

- name: Check if DNAnalyzer postgres link exists
shell: dokku postgres:exists dnanalyzer
community.docker.docker_container_exec:
container: dokku
command: dokku postgres:exists dnanalyzer
register: pg_link_exists
changed_when: false
failed_when: pg_link_exists.rc > 1

- name: Create DNAnalyzer postgres link
shell: dokku postgres:link dnanalyzer dnanalyzer
community.docker.docker_container_exec:
container: dokku
command: dokku postgres:link dnanalyzer dnanalyzer
changed_when: "'dnanalyzer' not in pg_link_exists.stdout"
when: "'dnanalyzer' not in pg_link_exists.stdout"

# - name: Check if gtn-slack-bot postgres exists
# community.docker.docker_container_exec:
# container: dokku
# command: dokku postgres:exists gtn-slack-bot
# register: pg_exists
# changed_when: false
# ignore_errors: true
#
# - name: Create gtn-slack-bot postgres
# community.docker.docker_container_exec:
# container: dokku
# command: dokku postgres:create gtn-slack-bot
# changed_when: pg_exists.rc == 1
# when: pg_exists.rc == 1
#
# - name: Check if gtn-slack-bot postgres link exists
# community.docker.docker_container_exec:
# container: dokku
# command: dokku postgres:exists gtn-slack-bot
# register: pg_link_exists
# changed_when: false
# failed_when: pg_link_exists.rc > 1
#
# - name: Create gtn-slack-bot postgres link
# community.docker.docker_container_exec:
# container: dokku
# command: dokku postgres:link gtn-slack-bot gtn-slack-bot
# changed_when: "'gtn-slack-bot' not in pg_link_exists.stdout"
# when: "'gtn-slack-bot' not in pg_link_exists.stdout"

- name: Check if gtn-slack-bot postgres exists
shell: dokku postgres:exists gtn-slack-bot
register: pg_exists
changed_when: false
ignore_errors: true

- name: Create gtn-slack-bot postgres
shell: dokku postgres:create gtn-slack-bot
changed_when: pg_exists.rc == 1
when: pg_exists.rc == 1

- name: Check if gtn-slack-bot postgres link exists
shell: dokku postgres:exists gtn-slack-bot
register: pg_link_exists
changed_when: false
failed_when: pg_link_exists.rc > 1

- name: Create gtn-slack-bot postgres link
shell: dokku postgres:link gtn-slack-bot gtn-slack-bot
changed_when: "'gtn-slack-bot' not in pg_link_exists.stdout"
when: "'gtn-slack-bot' not in pg_link_exists.stdout"

- name: Set LE email
command: dokku letsencrypt:set --global email helena.rasche@gmail.com

- name: Setup Certs
dokku_letsencrypt:
app: "{{ item }}"
with_items: "{{ apps }}"

- name: Auto Renew Certs
ansible.builtin.cron:
name: Dokku Cert Autorenew
user: ubuntu
job: /usr/bin/dokku letsencrypt:auto-renew
hour: 4
minute: 59
# random values

# - name: Clones
# dokku_clone:
Expand Down
36 changes: 36 additions & 0 deletions group_vars/dokku.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
hostname: apps.galaxyproject.eu
apps:
- ptdk
# - pwdk
- oembed
# - certificates
# - gtn-slack-bot
- dnanalyzer
# - cors
dokku_plugins:
- name: postgres
url: https://github.com/dokku/dokku-postgres.git
- name: letsencrypt
url: https://github.com/dokku/dokku-letsencrypt.git
- name: redis
url: https://github.com/dokku/dokku-redis.git
# - name: acl
# url: https://github.com/dokku/dokku-acl.git
dokku_users:
# - name: hexylena
# username: hexylena
# ssh_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEEurxSQW4BrpP9FLXqiz/H6Ewclln68oc/oFAVqH5xu"
# - name: mira
# username: mira
# ssh_key: "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIEUzGzHldVS8TNywBdlFL9D5FCvgEPBdoHzRpmk/42K/AAAABHNzaDo= mk@galaxy-mira"
- name: github
username: github
ssh_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDXBVfvItcmrgHVaV7aohDLe05GF1G82OQ4qa+MOpSkkYqA7S+p5L+ag0RMy1Yn5YjqxxXvuHTOWosp9GTeDQi/khearnMpcNyHHQA1k9PYEAoQohcnKX9XBqXZI+9Mlk1JL8nZ4T99YbF2GqNbXo1jHsPvkLQHZtVyLV2pM2GAY28JjAhw3k+dVn7hT26FBcPCRuj4GakL/Fti1duW6HjEwiqqPjpqSio1K8fEI7TVE/YHDQjeAHLvbDe2hzbaVOwwzNkxs1jy/MsK7HfTouJHewC7IWg3wlllC2zfYqnvFTaHtcK3fHRzMdgZ3HqSUtvC4/tfd0zch/0YatWxbqmEntVNhnvyJW3t+hQM0zEPbCKVMfxuf8JTxXaTS5fzMWSNVDKIKJ3XY04gOGA6oDJOHoIubN28AaudjEo045s1a8Zf+RPq23oc7X/Ajvze4IRQdqAN/TMuCyNA/iqeGTYFWP6Ia4nd/3QYUlPtzAeCo0WTkamccYwMWPr+bYCYlls= dokku@github"
# - name: github2
# username: github2
# ssh_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFGzr8JWnnCQo+565kzpXKYP12kLt2oyWzFCF/cueIvO"
# - name: oembed
# username: oembed
# ssh_key: "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLkuOlVUXxCqABoQbTEvW3A8nSSici89C10lEg1F4Cmvv/q8YRGYaoDayuqifFJERWvRA8yVcIH7/XCPzmMrLM0="
dokku_daemon_install: false
dokku_docker_install: true
2 changes: 1 addition & 1 deletion hosts
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ sn09.galaxyproject.eu
ansible_group_priority=4

[dokku]
apps.galaxyproject.eu ansible_ssh_user=ubuntu ansible_port=8080
apps.bi.privat ansible_ssh_user=centos ansible_port=22

[libvirt:children]
sn12
Expand Down
3 changes: 2 additions & 1 deletion requirements.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,8 @@ roles:
- name: artis3n.tailscale
version: v4.5.0
- name: dokku_bot.ansible_dokku
version: v2024.4.11
src: https://github.com/usegalaxy-eu/ansible-dokku
version: master
- src: https://github.com/usegalaxy-eu/ansible-traefik
name: usegalaxy_eu.traefik
version: 2.0.0
Expand Down
Loading