Skip to content

Commit 61a73d9

Browse files
authored
Update deployment for alts-scheduler (#183)
1 parent b3057a2 commit 61a73d9

File tree

6 files changed

+53
-10
lines changed

6 files changed

+53
-10
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,7 @@ deployment/*vars*.yaml
146146

147147
# Ignore venvs of all kind
148148
*venv
149+
150+
# Ignore Ansible dependencies
151+
deployment/roles/geerlingguy.redis
152+
deployment/roles/geerlingguy.docker

deployment/group_vars/scheduler

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
---
22

3-
test_system_user: test-system
4-
test_system_vhost: test_system
3+
# Firewall management (set to false for cloud instances using security groups)
4+
manage_firewall: false
5+
6+
broker_type: rabbitmq
7+
test_system_user: albs
8+
test_system_vhost: alts
59
test_system_password: some-another-secret-password
610
test_system_config_dir: ~/.config/alts
711

@@ -12,14 +16,28 @@ rabbitmq_ssl_port: 5671
1216
celery_ssl: true
1317
celery_ssl_src_certificate: "files/celery/client_certificate.pem"
1418
celery_ssl_src_key: "files/celery/client_key.pem"
15-
celery_src_cacert: "files/ca_certificate.pem"
19+
celery_src_cacert: "files/celery/ca_certificate.pem"
1620
celery_ssl_dir: "{{ test_system_config_dir }}/ssl"
1721
celery_ssl_certificate: "{{ celery_ssl_dir }}/{{ celery_ssl_src_certificate | basename }}"
1822
celery_ssl_key: "{{ celery_ssl_dir }}/{{ celery_ssl_src_key | basename }}"
1923
celery_cacert: "{{ celery_ssl_dir }}/{{ celery_src_cacert | basename }}"
2024

21-
result_backend_name: local
22-
celery_result_folder: /srv/celery_results
25+
# Redis configuration for result backend (geerlingguy.redis role variables)
26+
redis_bind_interface: 0.0.0.0
27+
redis_port: 6379
28+
# redis_requirepass: "" # Uncomment and set if you need password authentication
29+
# redis_maxmemory: 512mb
30+
# redis_maxmemory_policy: allkeys-lru
31+
32+
# Celery result backend configuration
33+
result_backend_name: redis
34+
alts_redis_host: localhost
35+
alts_redis_port: 6379
36+
alts_redis_results_db: 1
37+
38+
# Legacy local result backend (not used with Redis)
39+
# result_backend_name: local
40+
# celery_result_folder: /srv/celery_results
2341

2442
celery_pid_file_dir: /var/run/celery
2543
celery_pid_file: "{{ celery_pid_file_dir }}/worker.pid"
@@ -30,3 +48,6 @@ celery_queues:
3048

3149
scheduler_working_directory: /srv/alts/scheduler
3250
jwt_secret: very-secret-on5
51+
broker_pool: 30
52+
worker_prefetch_multiplier: 1
53+
result_expires: 3600

deployment/requirements.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
---
22
roles:
33
- name: geerlingguy.docker
4+
- name: geerlingguy.redis

deployment/roles/scheduler/tasks/main.yml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@
5050
mode: 0600
5151
backup: "yes"
5252
with_items:
53-
- { src: "{{ celery_src_cacert }}", dest: "{{ celery_cacert }}" }
54-
- { src: "{{ celery_ssl_src_key }}", dest: "{{ celery_ssl_key }}" }
55-
- { src: "{{ celery_ssl_src_certificate }}", dest: "{{ celery_ssl_certificate }}" }
53+
- {src: "{{ celery_src_cacert }}", dest: "{{ celery_cacert }}"}
54+
- {src: "{{ celery_ssl_src_key }}", dest: "{{ celery_ssl_key }}"}
55+
- {src: "{{ celery_ssl_src_certificate }}", dest: "{{ celery_ssl_certificate }}"}
5656
when: celery_ssl
5757

5858
- name: Create scheduler config
@@ -69,6 +69,18 @@
6969
state: directory
7070
when: scheduler_working_directory is defined and scheduler_working_directory
7171

72+
- name: Install firewalld
73+
yum:
74+
name: ["firewalld", "python3-firewall"]
75+
state: present
76+
when: manage_firewall | default(true) | bool
77+
78+
- name: Ensure firewalld is running
79+
service:
80+
name: firewalld
81+
state: started
82+
enabled: yes
83+
when: manage_firewall | default(true) | bool
7284

7385
- name: Enable HTTP/HTTPS services on firewall
7486
firewalld:
@@ -79,6 +91,7 @@
7991
with_items:
8092
- http
8193
- https
94+
when: manage_firewall | default(true) | bool
8295

8396
- name: Add scheduler port to firewall
8497
firewalld:
@@ -87,6 +100,7 @@
87100
state: enabled
88101
permanent: yes
89102
immediate: yes
103+
when: manage_firewall | default(true) | bool
90104

91105
- name: Create scheduler Systemd service file
92106
template:

deployment/scheduler_playbook.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
hosts: scheduler
55
roles:
66
- base
7+
- geerlingguy.redis
78
- scheduler

deployment/templates/service_config.yaml.j2

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ broker_config:
1515
use_ssl: true
1616
rabbitmq_ssl_port: {{ rabbitmq_ssl_port }}
1717
{% endif %}
18-
rabbitmq_user: {{ test_system_user }}
18+
rabbitmq_user: {{ celery_rabbitmq_user or test_system_user }}
1919
rabbitmq_password: {{ test_system_password }}
2020
rabbitmq_vhost: {{ test_system_vhost }}
2121
{% elif broker_type == 'redis' and alts_redis_host and alts_redis_port %}
@@ -31,7 +31,7 @@ broker_pool: {{ broker_pool }}
3131
results_backend_config:
3232
{% if result_backend_name == 'local' and celery_result_folder %}
3333
path: file://{{ celery_result_folder }}
34-
{% elif result_backend_name == 'azure' and azure_connection_str and azureblockblob_container_name %}
34+
{% elif result_backend_name == 'azure' and azure_connection_str is defined and azureblockblob_container_name is defined %}
3535
azureblockblob_container_name: {{ azureblockblob_container_name }}
3636
azureblockblob_base_path: 'celery_results/'
3737
azure_connection_string: {{ azure_connection_str }}
@@ -97,7 +97,9 @@ opennebula_config:
9797
network: "{{ opennebula_network }}"
9898
{% endif %}
9999
{% endif %}
100+
{% if tests_exec_timeout is defined %}
100101
tests_exec_timeout: {{ tests_exec_timeout }}
102+
{% endif %}
101103
{% if centos_baseurl is defined %}
102104
centos_baseurl: "{{ centos_baseurl }}"
103105
{% endif %}

0 commit comments

Comments
 (0)