Skip to content

Commit cdad5e9

Browse files
authored
Actualize test system deployment (#146)
1 parent 2504230 commit cdad5e9

File tree

15 files changed

+262
-65
lines changed

15 files changed

+262
-65
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ terraform.rc
135135

136136
# Ignore sensitive files from deployment
137137
deployment/hosts
138+
deployment/ansible
138139
deployment/hosts.*
139140
deployment/files/*.pem
140141
deployment/files/*.crt

deployment/ansible.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
[defaults]
22
host_key_checking = False
3+
roles_path = ./roles:./ansible/external-roles

deployment/celery_playbook.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,15 @@
22

33
- name: Install Celery
44
hosts: celery
5+
vars:
6+
docker_users:
7+
- "{{ test_system_user }}"
58
roles:
69
- base
7-
- docker
10+
# TODO: add role for building docker for s390x
11+
- geerlingguy.docker
812
- docker_customization
9-
- terraform
13+
- role: terraform
14+
tags:
15+
- terraform
1016
- celery

deployment/group_vars/celery

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ result_backend_name: local
2525
celery_result_folder: /srv/celery_results
2626
celery_pool_type: prefork
2727

28+
worker_prefetch_multiplier: 1
29+
result_expires: 3600
30+
tests_exec_timeout: 3600
31+
broker_pool: 30
32+
2833
celery_log_file_dir: /var/log/celery
2934
celery_log_file: "{{ celery_log_file_dir }}/celery.log"
3035
celery_concurrency: 10

deployment/hosts_example.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
all:
3+
children:
4+
celery:
5+
hosts:
6+
x86_64-node01:
7+
celery_queues:
8+
- "docker-x86_64-0"
9+
aarch64-node01:
10+
terraform_arch: arm
11+
celery_queues:
12+
- "docker-aarch64-0"
13+
build_terraform: true
14+
node_arch: aarch64
15+
terraform_build_ver: v1.11.4
16+
docker_build_ver: 3.6.1
17+
s390x-node01:
18+
celery_queues:
19+
- "docker-s390x-0"
20+
build_terraform: true
21+
node_arch: s390x
22+
terraform_build_ver: v1.11.4
23+
docker_build_ver: 3.6.1

deployment/requirements.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
roles:
3+
- name: geerlingguy.docker

deployment/roles/base/tasks/main.yml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,34 @@
11
---
22

33
- name: Install yum-utils
4-
dnf:
4+
ansible.builtin.dnf:
55
name: yum-utils
66
state: present
77

88
- name: Update all packages
9-
dnf:
9+
ansible.builtin.dnf:
1010
name: "*"
1111
state: latest
1212
skip_broken: true
1313
nobest: true
1414

1515
- name: Install EPEL repository
16-
dnf:
16+
ansible.builtin.dnf:
1717
name: epel-release
1818
state: present
1919

20-
- name: Add Celery user
21-
user:
20+
- name: Allow 'wheel' group to have passwordless sudo
21+
ansible.builtin.lineinfile:
22+
dest: /etc/sudoers
23+
state: present
24+
regexp: '^%wheel'
25+
line: '%wheel ALL=(ALL) NOPASSWD: ALL'
26+
validate: 'visudo -cf %s'
27+
28+
- name: Add "{{ test_system_user }}" user
29+
ansible.builtin.user:
2230
name: "{{ test_system_user }}"
23-
groups: docker
31+
groups: wheel
2432
append: yes
2533
generate_ssh_key: yes
2634
ssh_key_bits: 4096
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22

33
- name: Reload Celery service file
4-
systemd:
4+
ansible.builtin.systemd:
55
service: alts-celery
66
state: reloaded

deployment/roles/celery/tasks/main.yml

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313

1414
- name: Install needed packages
15-
dnf:
15+
ansible.builtin.dnf:
1616
name: [
1717
"python3-pip", "python3-virtualenv", "librabbitmq",
1818
"cmake", "libtool", "autoconf", "git", "ansible", "python3-devel",
@@ -28,17 +28,17 @@
2828
become_user: "{{ test_system_user }}"
2929
block:
3030
- name: Clone ALTS repository
31-
git:
31+
ansible.builtin.git:
3232
repo: https://github.com/AlmaLinux/alts
3333
dest: /home/{{ test_system_user }}/alts
3434

3535
- name: Install Celery dependencies
36-
pip:
36+
ansible.builtin.pip:
3737
virtualenv: "{{ celery_venv_dir }}"
3838
requirements: /home/{{ test_system_user }}/alts/requirements/celery.txt
3939

4040
- name: Create config and SSL folder
41-
file:
41+
ansible.builtin.file:
4242
path: "{{ item }}"
4343
mode: 0755
4444
state: directory
@@ -47,7 +47,7 @@
4747
- "{{ celery_ssl_dir }}"
4848

4949
- name: Copy the ssl certificates
50-
copy:
50+
ansible.builtin.copy:
5151
src: "{{ item.src }}"
5252
dest: "{{ item.dest }}"
5353
owner: "{{ test_system_user }}"
@@ -61,38 +61,47 @@
6161
when: celery_ssl
6262

6363
- name: Create Celery config
64-
template:
64+
ansible.builtin.template:
6565
src: service_config.yaml.j2
6666
dest: "{{ test_system_config_dir }}/celery.yaml"
67+
tags:
68+
- celery-config
6769

6870
- name: Create Celery Systemd service file
69-
template:
71+
ansible.builtin.template:
7072
src: alts-celery.service.j2
7173
dest: /etc/systemd/system/alts-celery.service
7274
mode: 0644
7375

7476
- name: Create log files directory for Celery service
75-
file:
77+
ansible.builtin.file:
7678
path: "{{ celery_log_file_dir }}"
7779
mode: 0755
7880
owner: "{{ test_system_user }}"
7981
group: "{{ test_system_user }}"
8082
state: directory
8183

8284
- name: Create folder for Celery local results
83-
file:
85+
ansible.builtin.file:
8486
path: "{{ celery_result_folder }}"
8587
mode: 0755
8688
owner: "{{ test_system_user }}"
8789
group: "{{ test_system_user }}"
8890
state: directory
8991
when: result_backend_name is defined and result_backend_name == 'local'
9092

91-
- name: Reload Celery service file
92-
command: systemctl daemon-reload
93+
- name: Create logrotate config
94+
ansible.builtin.template:
95+
src: celery-logrotate.j2
96+
dest: /etc/logrotate.d/celery
97+
owner: root
98+
group: root
99+
mode: 0644
93100

94101
- name: Enable and start Celery service
95-
service:
102+
ansible.builtin.systemd:
96103
name: alts-celery
104+
masked: no
105+
state: restarted
106+
daemon_reload: yes
97107
enabled: yes
98-
state: stopped

deployment/roles/docker_customization/tasks/main.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,23 @@
1212
when: "ansible_facts.os_family == 'RedHat'"
1313

1414
- name: Deploy docker options file
15-
template:
15+
ansible.builtin.template:
1616
src: docker-options.j2
1717
dest: /etc/sysconfig/docker
1818
mode: 0644
1919
owner: root
2020
group: root
2121

2222
- name: Create docker service config directory
23-
file:
23+
ansible.builtin.file:
2424
path: /etc/systemd/system/docker.service.d
2525
state: directory
2626
mode: 0755
2727
owner: root
2828
group: root
2929

3030
- name: Deploy custom docker service configuration
31-
copy:
31+
ansible.builtin.copy:
3232
src: docker-moby.conf
3333
dest: /etc/systemd/system/docker.service.d/docker-moby.conf
3434
mode: 0644
@@ -41,7 +41,7 @@
4141
when: "config_deploy.changed"
4242

4343
- name: Restart docker service if needed
44-
systemd:
44+
ansible.builtin.systemd:
4545
name: docker
4646
state: "{{ docker_service_state }}"
4747
enabled: yes

0 commit comments

Comments
 (0)