diff options
| author | Luke Hoersten <[email protected]> | 2026-03-28 13:42:08 -0500 |
|---|---|---|
| committer | Luke Hoersten <[email protected]> | 2026-03-28 13:42:08 -0500 |
| commit | 45da5bca82200af63b0ee16479b267eb209386f3 (patch) | |
| tree | 91725673c5cf227cda7edee89f2909a30251eda3 /soju/tasks/main.yaml | |
| parent | 7ac3515aa05a60f24176cfda0364694ff2fdb8c3 (diff) | |
Added soju role.
Diffstat (limited to 'soju/tasks/main.yaml')
| -rw-r--r-- | soju/tasks/main.yaml | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/soju/tasks/main.yaml b/soju/tasks/main.yaml new file mode 100644 index 0000000..846b3e3 --- /dev/null +++ b/soju/tasks/main.yaml @@ -0,0 +1,94 @@ +--- + +- name: install soju + become: yes + apt: name="soju" + notify: restart soju + +- name: install soju db schema file + become: yes + template: + src: "setup_db.psql.j2" + dest: "/tmp/setup_db_soju.psql" + owner: "postgres" + group: "postgres" + mode: "0600" + +- name: setup soju db + become: yes + become_user: "postgres" + command: "psql -f /tmp/setup_db_soju.psql" + changed_when: false + +- name: create soju data dir + become: yes + file: + path: "{{soju_data_dir}}" + state: "directory" + owner: "{{soju_user}}" + group: "{{soju_user}}" + mode: "0755" + +- name: configure soju + become: yes + template: + src: "config.j2" + dest: "/etc/soju/config" + mode: "0644" + notify: restart soju + +- name: enable soju service + become: yes + systemd: name="soju.service" enabled="yes" state="started" + +- name: flush handlers to ensure soju is restarted with latest config + meta: flush_handlers + +- name: create soju admin user + become: yes + become_user: "{{soju_user}}" + shell: "echo '{{soju_admin_password}}' | sojudb -config /etc/soju/config create-user {{soju_admin_user}} -admin" + register: soju_create_user + changed_when: soju_create_user.rc == 0 + failed_when: soju_create_user.rc != 0 and 'duplicate key' not in soju_create_user.stderr + no_log: true + +- name: create soju networks + become: yes + become_user: "{{soju_user}}" + command: > + sojuctl -config /etc/soju/config user run {{soju_admin_user}} + network create + -addr {{item.addr}} + -name {{item.name}} + -nick {{item.nick}} + loop: "{{soju_networks}}" + register: soju_network_create + changed_when: soju_network_create.rc == 0 + failed_when: soju_network_create.rc != 0 and 'already exists' not in soju_network_create.stderr + no_log: true + +- name: configure soju network sasl + become: yes + become_user: "{{soju_user}}" + command: > + sojuctl -config /etc/soju/config user run {{soju_admin_user}} + sasl set-plain -network {{item.name}} {{item.sasl_username}} {{item.sasl_password}} + loop: "{{soju_networks}}" + when: item.sasl_username is defined + no_log: true + +- name: install nginx stream config + become: yes + template: + src: "nginx-stream.conf.j2" + dest: "/etc/nginx/streams-available/soju.conf" + notify: reload nginx + +- name: enable nginx stream config + become: yes + file: + src: "/etc/nginx/streams-available/soju.conf" + dest: "/etc/nginx/streams-enabled/soju.conf" + state: "link" + notify: reload nginx |
