Skip to content

Commit 04b9507

Browse files
committed
Added more steps to polish each component's config files, also added telemetry_api steps.
1 parent df9b8ed commit 04b9507

File tree

6 files changed

+195
-22
lines changed

6 files changed

+195
-22
lines changed
Lines changed: 54 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,64 @@
11
- name: Cassandra Setup
22
hosts: "{{ host }}"
3+
become: true
4+
vars:
5+
ansible_ssh_user: "{{ admin_user }}"
36

47
tasks:
8+
- name: Check if cassandra is installed
9+
stat:
10+
path: /opt/cassandra/bin/cassandra
11+
register: cassandra_exists
512

6-
- name: Download and add Apache Cassandra GPG key
7-
become: true
13+
- name: Install java
14+
when: not cassandra_exists.stat.exists
15+
apt:
16+
pkg:
17+
- default-jre
18+
19+
- name: Create cassandra group
20+
when: not cassandra_exists.stat.exists
21+
group:
22+
name: cassandra
23+
system: yes
24+
25+
- name: Create cassandra user
26+
when: not cassandra_exists.stat.exists
27+
user:
28+
name: cassandra
29+
group: cassandra
30+
shell: /sbin/nologin
31+
system: yes
32+
33+
- name: Download cassandra
34+
when: not cassandra_exists.stat.exists
835
get_url:
9-
url: "https://downloads.apache.org/cassandra/KEYS"
10-
dest: "/etc/apt/keyrings/apache-cassandra.asc"
36+
url: "https://dlcdn.apache.org/cassandra/{{ cassandra_version }}/apache-cassandra-{{ cassandra_version }}-bin.tar.gz "
37+
dest: "/tmp/cassandra-{{ cassandra_version }}.tar.gz"
1138
mode: '0644'
12-
vars:
13-
ansible_ssh_user: "{{ admin_user }}"
1439

15-
- name: Add Apache Cassandra repository
16-
become: true
17-
shell: echo "deb [signed-by=/etc/apt/keyrings/apache-cassandra.asc] https://debian.cassandra.apache.org 41x main" | sudo tee /etc/apt/sources.list.d/cassandra.sources.list
18-
vars:
19-
ansible_ssh_user: "{{ admin_user }}"
40+
- name: Ensure /opt/cassandra directory exists
41+
file:
42+
path: /opt/cassandra
43+
owner: "cassandra"
44+
group: "cassandra"
45+
state: directory
2046

21-
- name: Install Cassandra
22-
become: true
23-
apt:
24-
update_cache: yes
25-
name: cassandra
26-
state: present
47+
- name: Extract cassandra
48+
when: not cassandra_exists.stat.exists
49+
unarchive:
50+
src: "/tmp/cassandra-{{ cassandra_version }}.tar.gz"
51+
dest: /opt/cassandra/
52+
remote_src: yes
53+
owner: "cassandra"
54+
group: "cassandra"
55+
extra_opts:
56+
- --strip-components=1
57+
58+
- name: Create Cassandra systemd service
59+
when: not cassandra_exists.stat.exists
60+
template:
61+
src: services/cassandra.service.j2
62+
dest: /etc/systemd/system/cassandra.service
2763
vars:
28-
ansible_ssh_user: "{{ admin_user }}"
64+
cassandra_version: "{{ cassandra_version }}"

infra/ansible/playbooks/jaeger.yaml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,30 @@
22
hosts: "{{ host }}"
33

44
tasks:
5+
- name: Check if Jaeger is installed
6+
stat:
7+
path: /usr/local/bin/jaeger-collector
8+
register: jaeger_exists
9+
10+
- name: Create Jaeger group
11+
become: true
12+
when: not jaeger_exists.stat.exists
13+
group:
14+
name: jaeger-collector
15+
system: yes
16+
vars:
17+
ansible_ssh_user: "{{ admin_user }}"
18+
19+
- name: Create Jaeger user
20+
become: true
21+
when: not jaeger_exists.stat.exists
22+
user:
23+
name: jaeger-collector
24+
group: jaeger-collector
25+
shell: /sbin/nologin
26+
system: yes
27+
vars:
28+
ansible_ssh_user: "{{ admin_user }}"
529

630
- name: Download Jaeger package
731
get_url:
@@ -24,3 +48,11 @@
2448
file:
2549
path: /tmp/jaeger-{{ version }}-linux-amd64.tar.gz
2650
state: absent
51+
52+
- name: Create Jaeger systemd service
53+
become: true
54+
template:
55+
src: services/jaeger.service.j2
56+
dest: /etc/systemd/system/jaeger.service
57+
vars:
58+
ansible_ssh_user: "{{ admin_user }}"

infra/ansible/playbooks/telemetry.yaml

Lines changed: 68 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,54 @@
1+
- name: Run Setup playbook
2+
ansible.builtin.import_playbook: setup.yaml
3+
vars:
4+
host: telemetry
5+
6+
- name: Run Elixir playbook
7+
ansible.builtin.import_playbook: elixir.yaml
8+
vars:
9+
host: telemetry
10+
11+
- name: Run Caddy playbook
12+
ansible.builtin.import_playbook: caddy.yaml
13+
vars:
14+
host: telemetry
15+
ini_file: ini/config-telemetry.ini
16+
17+
- name: Run Prometheus playbook
18+
ansible.builtin.import_playbook: prometheus.yaml
19+
vars:
20+
host: telemetry
21+
prometheus_version: "2.53.2"
22+
ini_file: ini/config-telemetry.ini
23+
24+
- name: Run Grafana playbook
25+
ansible.builtin.import_playbook: grafana.yaml
26+
vars:
27+
host: telemetry
28+
ini_file: ini/config-telemetry.ini
29+
30+
- name: Run OpenTelemetry playbook
31+
ansible.builtin.import_playbook: open_telemetry.yaml
32+
vars:
33+
host: telemetry
34+
35+
- name: Run Jaeger playbook
36+
ansible.builtin.import_playbook: jaeger.yaml
37+
vars:
38+
host: telemetry
39+
grafana_version: 1.63.0
40+
41+
- name: Run Cassandra playbook
42+
ansible.builtin.import_playbook: cassandra.yaml
43+
vars:
44+
host: telemetry
45+
version: 5.0.0
46+
47+
- name: Run Postgres playbook
48+
ansible.builtin.import_playbook: postgres.yaml
49+
vars:
50+
host: telemetry
51+
152
- name: Setup Telemetry
253
hosts: telemetry
354

@@ -21,7 +72,7 @@
2172
version: v0.10.2
2273
recursive: false
2374

24-
- name: Add environment file for telemetry API
75+
- name: Add environment file for Telemetry API
2576
template:
2677
src: telemetry_api/telemetry_env.j2
2778
dest: /home/{{ ansible_user }}/repos/telemetry/aligned_layer/telemetry_api/.env
@@ -34,7 +85,7 @@
3485
telemetry_api_elixir_hostname: "{{ lookup('ini', 'telemetry_api_elixir_hostname file=ini/config-telemetry.ini') }}"
3586
telemetry_api_secret_key_base: "{{ lookup('ini', 'telemetry_api_secret_key_base file=ini/config-telemetry.ini') }}"
3687

37-
- name: Install dependencies for telemetry API
88+
- name: Install dependencies for Telemetry API
3889
shell:
3990
cmd: |
4091
source .env
@@ -45,16 +96,29 @@
4596
environment:
4697
MIX_ENV: prod
4798

48-
- name: Build release for telemetry API
99+
- name: Build release for Telemetry API
49100
shell:
50101
cmd: |
51102
source .env && mix release
52103
chdir: /home/{{ ansible_user }}/repos/telemetry/aligned_layer/telemetry_api
53104
executable: /bin/bash
54-
creates: repos/telemetry/aligned_layer/telemetry_api/_build/prod/rel/telemetry_api/bin/
105+
creates: /home/{{ ansible_user }}/repos/telemetry/aligned_layer/telemetry_api/_build/prod/rel/telemetry_api/bin/
55106
environment:
56107
MIX_ENV: prod
57108

109+
- name: Ensure ~/.config/systemd/user/ directory exists
110+
file:
111+
path: /home/{{ ansible_user }}/.config/systemd/user/
112+
state: directory
113+
114+
- name: Create .env for Telemetry API systemd service
115+
shell: cat /home/{{ ansible_user }}/repos/telemetry/aligned_layer/telemetry_api/.env | sed 's/export //g' > /home/{{ ansible_user }}/config/.env.telemetry
116+
117+
- name: Create systemd service for Telemetry API
118+
template:
119+
src: services/telemetry.service.j2
120+
dest: /home/{{ ansible_user }}/.config/systemd/user/telemetry.service
121+
58122
handlers:
59123
- name: Restart caddy
60124
become: true
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
[Unit]
2+
Description=Cassandra
3+
After=network.target
4+
5+
[Service]
6+
User=cassandra
7+
Group=cassandra
8+
ExecStart=/opt/cassandra/bin/cassandra
9+
LimitNOFILE=100000
10+
LimitMEMLOCK=infinity
11+
LimitNPROC=32768
12+
LimitAS=infinity
13+
Restart=always
14+
15+
[Install]
16+
WantedBy=multi-user.target
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
[Unit]
2+
Description=Jaeger Collector daemon
3+
Requires=cassandra.service
4+
Wants=network-online.target
5+
After=cassandra.service
6+
7+
[Service]
8+
Environment="SPAN_STORAGE=cassandra"
9+
ExecStart=/usr/local/bin/jaeger-all-in-one --config-file=/etc/jaeger/config.toml
10+
User=jaeger-collector
11+
Group=jaeger-collector
12+
13+
[Install]
14+
WantedBy=multi-user.target
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[Unit]
2+
Description=Telemetry
3+
After=network.target
4+
5+
[Service]
6+
EnvironmentFile=/home/{{ ansible_user }}/config/.env.telemetry
7+
WorkingDirectory=/home/{{ ansible_user }}/repos/telemetry/aligned_layer
8+
ExecStart=/home/{{ ansible_user }}/repos/telemetry/aligned_layer/telemetry_api/_build/prod/rel/telemetry_api/bin/telemetry_api start
9+
10+
[Install]
11+
WantedBy=multi-user.target

0 commit comments

Comments
 (0)