Skip to content

Commit c5f5cbb

Browse files
committed
Added support for all telemetry components, started to build telemetry_api (WIP).
1 parent dd111e3 commit c5f5cbb

File tree

11 files changed

+319
-124
lines changed

11 files changed

+319
-124
lines changed

infra/ansible/playbooks/caddy.yaml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,15 @@
4646
dest: /etc/caddy/Caddyfile
4747
vars:
4848
ansible_ssh_user: "{{ admin_user }}"
49-
caddy_api_url: "{{ lookup('ini', 'caddy_api_url', file=ini_file) }}"
49+
caddy_metrics_url: "{{ lookup('ini', 'caddy_metrics_url', file=ini_file) }}"
50+
caddy_telemetry_url: "{{ lookup('ini', 'caddy_telemetry_url', file=ini_file) }}"
51+
caddy_tailscale_url: "{{ lookup('ini', 'caddy_tailscale_url', file=ini_file) }}"
52+
53+
- name: Enable caddy
54+
become: true
55+
systemd_service:
56+
name: caddy
57+
enabled: true
58+
state: started
59+
vars:
60+
ansible_ssh_user: "{{ admin_user }}"
Lines changed: 66 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
11
- name: Elixir Setup
22
hosts: "{{ host }}"
3+
34
vars:
4-
erlang_version: 26.0
5-
elixir_version: 1.16.2-otp-26
5+
ansible_ssh_user: "{{ admin_user }}"
66

77
tasks:
88
# Install required packages
99
- name: Update apt and install required system packages
1010
become: true
11-
apt:
11+
ansible.builtin.apt:
1212
pkg:
1313
- build-essential
1414
- autoconf
1515
- m4
1616
- libncurses5-dev
17-
- libwxgtk3.2-dev
18-
- libwxgtk-webview3.2-dev
1917
- libgl1-mesa-dev
2018
- libglu1-mesa-dev
2119
- libpng-dev
@@ -25,40 +23,76 @@
2523
- fop
2624
- libxml2-utils
2725
- libncurses-dev
28-
- openjdk-17-jdk
2926
state: latest
3027
update_cache: true
31-
vars:
32-
ansible_ssh_user: "{{ admin_user }}"
3328

34-
- name: Clone asdf repository into ~/.asdf
35-
ansible.builtin.git:
36-
name: https://github.com/asdf-vm/asdf.git
37-
dest: ~/.asdf
38-
single_branch: yes
39-
version: v0.14.0
29+
########## Install libssl1.1 ##########
30+
- name: Check if libssl1.1 is installed
31+
become: true
32+
ansible.builtin.shell:
33+
cmd: dpkg -l | grep libssl1.1
34+
register: libssl_check
35+
changed_when: false
36+
failed_when: libssl_check.rc not in [0, 1]
4037

41-
- name: Insert lines to ~/.bashrc to source asdf
42-
ansible.builtin.blockinfile:
43-
path: "/home/{{ ansible_user }}/.bashrc"
44-
block: |
45-
. "$HOME/.asdf/asdf.sh"
46-
. "$HOME/.asdf/completions/asdf.bash"
38+
- name: Download libssl1.1
39+
become: true
40+
register: download_libssl
41+
ansible.builtin.get_url:
42+
url: http://ftp.de.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.1w-0+deb11u1_amd64.deb
43+
dest: /root/
44+
when: libssl_check.rc != 0
4745

48-
- name: Add Erlang plugin to asdf
49-
shell: /home/{{ ansible_user }}/.asdf/bin/asdf plugin add erlang
46+
- name: Install libssl1.1
47+
become: true
48+
ansible.builtin.apt:
49+
deb: "{{ download_libssl.dest }}"
50+
when: libssl_check.rc != 0
5051

51-
- name: Add Erlang version to asdf
52-
shell: /home/{{ ansible_user }}/.asdf/bin/asdf install erlang {{ erlang_version }}
52+
########## Install Erlang 26.2.1-1 ##########
53+
- name: Check if Erlang 26.2.1-1 is installed
54+
become: true
55+
ansible.builtin.shell:
56+
cmd: dpkg -l | grep esl-erlang
57+
register: erlang_check
58+
changed_when: false
59+
failed_when: erlang_check.rc not in [0, 1]
5360

54-
- name: Set Erlang version as global
55-
shell: /home/{{ ansible_user }}/.asdf/bin/asdf global erlang {{ erlang_version }}
61+
- name: Download Erlang 26.2.1-1
62+
become: true
63+
register: download_erlang
64+
ansible.builtin.get_url:
65+
url: https://binaries2.erlang-solutions.com/debian/pool/contrib/e/esl-erlang/esl-erlang_26.2.1-1~debian~bullseye_amd64.deb
66+
dest: /root/
67+
when: erlang_check.rc != 0
5668

57-
- name: Add Elixir plugin to asdf
58-
shell: /home/{{ ansible_user }}/.asdf/bin/asdf plugin add elixir
69+
- name: Install Erlang 26.2.1-1
70+
become: true
71+
ansible.builtin.apt:
72+
deb: "{{ download_erlang.dest }}"
73+
when: erlang_check.rc != 0
5974

60-
- name: Add Elixir version to asdf
61-
shell: /home/{{ ansible_user }}/.asdf/bin/asdf install elixir {{ elixir_version }}
75+
########## Install Elixir v1.16.2-otp-26 ##########
76+
- name: Check if Elixir v1.16.2 is installed
77+
become: true
78+
ansible.builtin.shell:
79+
cmd: elixir --version | grep "Elixir 1.16.2"
80+
register: elixir_check
81+
changed_when: false
82+
failed_when: elixir_check.rc not in [0, 1]
6283

63-
- name: Set Elixir version as global
64-
shell: /home/{{ ansible_user }}/.asdf/bin/asdf global elixir {{ elixir_version }}
84+
- name: Download Elixir v1.16.2-otp-26
85+
become: true
86+
register: download_elixir
87+
ansible.builtin.get_url:
88+
url: https://github.com/elixir-lang/elixir/releases/download/v1.16.2/elixir-otp-26.zip
89+
dest: /root/
90+
when: elixir_check.rc != 0
91+
92+
- name: Install Elixir v1.16.2-otp-26
93+
become: true
94+
ansible.builtin.unarchive:
95+
remote_src: true
96+
src: "{{ download_elixir.dest }}"
97+
dest: /usr/local/
98+
when: elixir_check.rc != 0

infra/ansible/playbooks/grafana.yaml

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,17 @@
3131
update_cache: yes
3232
vars:
3333
ansible_ssh_user: "{{ admin_user }}"
34-
34+
35+
- name: Create /etc/grafana directory
36+
become: true
37+
file:
38+
path: /etc/grafana/
39+
state: directory
40+
owner: root
41+
group: root
42+
vars:
43+
ansible_ssh_user: "{{ admin_user }}"
44+
3545
- name: Add grafana config file
3646
become: true
3747
template:
@@ -41,6 +51,43 @@
4151
ansible_ssh_user: "{{ admin_user }}"
4252
grafana_http_port: "{{ lookup('ini', 'grafana_http_port', file=ini_file) }}"
4353

54+
- name: Clone Aligned repository
55+
git:
56+
repo: https://github.com/yetanotherco/aligned_layer.git
57+
dest: /home/{{ ansible_user }}/repos/telemetry/aligned_layer
58+
version: v0.10.2
59+
recursive: false
60+
61+
- name: Ensure /etc/grafana/provisioning directory exists
62+
become: true
63+
file:
64+
path: /etc/grafana/provisioning/
65+
state: directory
66+
owner: root
67+
group: root
68+
vars:
69+
ansible_ssh_user: "{{ admin_user }}"
70+
71+
- name: Copy provisioning files to /etc/grafana/
72+
become: true
73+
copy:
74+
src: /home/{{ ansible_user }}/repos/telemetry/aligned_layer/grafana/provisioning/
75+
dest: /etc/grafana/provisioning/
76+
owner: root
77+
group: root
78+
remote_src: yes
79+
vars:
80+
ansible_ssh_user: "{{ admin_user }}"
81+
82+
- name: Add template for datasource file
83+
become: true
84+
template:
85+
src: grafana/datasource.yaml.j2
86+
dest: "/etc/grafana/provisioning/datasources/datasource.yaml"
87+
vars:
88+
ansible_ssh_user: "{{ admin_user }}"
89+
grafana_prometheus_datasource: "{{ lookup('ini', 'grafana_prometheus_datasource', file=ini_file) }}"
90+
4491
- name: Restart Grafana
4592
become: true
4693
service:
Lines changed: 40 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,47 @@
1-
- name: Postgres Setup
1+
- name: Install PostgreSQL 16
22
hosts: "{{ host }}"
33

4+
vars:
5+
ansible_ssh_user: "{{ admin_user }}"
6+
47
tasks:
58

6-
- name: Ensure Postgres GPG directory exists
7-
become: true
8-
file:
9-
path: "/usr/share/postgresql-common/pgdg"
10-
state: directory
11-
mode: '0755'
12-
vars:
13-
ansible_ssh_user: "{{ admin_user }}"
9+
- name: Update apt and install required system packages
10+
become: true
11+
ansible.builtin.apt:
12+
pkg:
13+
- curl
14+
- ca-certificates
15+
state: latest
16+
update_cache: true
1417

15-
- name: Download and add Postgres GPG key
16-
become: true
17-
get_url:
18-
url: "https://www.postgresql.org/media/keys/ACCC4CF8.asc"
19-
dest: "/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc"
20-
mode: '0644'
21-
vars:
22-
ansible_ssh_user: "{{ admin_user }}"
18+
- name: Ensure directory exists for postgres ca-certificates
19+
become: true
20+
ansible.builtin.file:
21+
path: /usr/share/postgresql-common/pgdg
22+
state: directory
23+
mode: '0755'
24+
25+
- name: Download postgres ca-certificates if not already present
26+
become: true
27+
ansible.builtin.get_url:
28+
url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
29+
dest: /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc
30+
mode: '0644'
31+
force: no
2332

24-
- name: Add Postgres repository
25-
become: true
26-
shell: echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
27-
vars:
28-
ansible_ssh_user: "{{ admin_user }}"
33+
- name: Add postgres apt repository
34+
become: true
35+
ansible.builtin.lineinfile:
36+
path: /etc/apt/sources.list.d/pgdg.list
37+
line: "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt {{ ansible_distribution_release }}-pgdg main"
38+
state: present
39+
create: true
2940

30-
- name: Install Postgres 16
31-
become: true
32-
apt:
33-
update_cache: yes
34-
name: postgresql-16
35-
state: present
36-
vars:
37-
ansible_ssh_user: "{{ admin_user }}"
41+
- name: Install PostgreSQL 16
42+
become: true
43+
ansible.builtin.apt:
44+
pkg:
45+
- postgresql-16
46+
state: latest
47+
update_cache: true

infra/ansible/playbooks/prometheus.yaml

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,31 @@
8585
- "/tmp/prometheus-{{ prometheus_version }}.linux-amd64"
8686

8787
- name: Add prometheus config file
88+
become: true
8889
template:
8990
src: prometheus/prometheus.yaml.j2
9091
dest: /etc/prometheus/prometheus.yml
9192
vars:
92-
aligned_aggregator_prometheus_ip: "{{ lookup('ini', 'aligned_aggregator_prometheus_ip', file='ini/config-telemetry.ini') }}"
93-
aligned_operator_prometheus_ip: "{{ lookup('ini', 'aligned_operator_prometheus_ip', file='ini/config-telemetry.ini') }}"
94-
aligned_batcher_prometheus_ip: "{{ lookup('ini', 'aligned_batcher_prometheus_ip', file='ini/config-telemetry.ini') }}"
95-
aligned_tracker_prometheus_ip: "{{ lookup('ini', 'aligned_tracker_prometheus_ip', file='ini/config-telemetry.ini') }}"
93+
ansible_ssh_user: "{{ admin_user }}"
94+
prometheus_aggregator_ip: "{{ lookup('ini', 'prometheus_aggregator_ip', file='ini/config-telemetry.ini') }}"
95+
prometheus_operator_ip: "{{ lookup('ini', 'prometheus_operator_ip', file='ini/config-telemetry.ini') }}"
96+
prometheus_batcher_ip: "{{ lookup('ini', 'prometheus_batcher_ip', file='ini/config-telemetry.ini') }}"
97+
prometheus_tracker_ip: "{{ lookup('ini', 'prometheus_tracker_ip', file='ini/config-telemetry.ini') }}"
98+
99+
- name: Create Prometheus systemd service
100+
become: true
101+
template:
102+
src: services/prometheus.service.j2
103+
dest: /etc/systemd/system/prometheus.service
104+
vars:
105+
ansible_ssh_user: "{{ admin_user }}"
106+
107+
- name: Enable prometheus
108+
become: true
109+
systemd_service:
110+
name: prometheus
111+
enabled: true
112+
daemon_reload: true
113+
state: started
114+
vars:
115+
ansible_ssh_user: "{{ admin_user }}"

0 commit comments

Comments
 (0)