|
255
|
1 |
--- |
|
|
2 |
|
|
|
3 |
- name: install soju |
|
|
4 |
become: yes |
|
|
5 |
apt: name="soju" |
|
|
6 |
notify: restart soju |
|
|
7 |
|
|
|
8 |
- name: install soju db schema file |
|
|
9 |
become: yes |
|
|
10 |
template: |
|
|
11 |
src: "setup_db.psql.j2" |
|
|
12 |
dest: "/tmp/setup_db_soju.psql" |
|
|
13 |
owner: "postgres" |
|
|
14 |
group: "postgres" |
|
|
15 |
mode: "0600" |
|
|
16 |
|
|
|
17 |
- name: setup soju db |
|
|
18 |
become: yes |
|
|
19 |
become_user: "postgres" |
|
|
20 |
command: "psql -f /tmp/setup_db_soju.psql" |
|
|
21 |
changed_when: false |
|
|
22 |
|
|
|
23 |
- name: create soju data dir |
|
|
24 |
become: yes |
|
|
25 |
file: |
|
|
26 |
path: "{{soju_data_dir}}" |
|
|
27 |
state: "directory" |
|
|
28 |
owner: "{{soju_user}}" |
|
|
29 |
group: "{{soju_user}}" |
|
|
30 |
mode: "0755" |
|
|
31 |
|
|
|
32 |
- name: configure soju |
|
|
33 |
become: yes |
|
|
34 |
template: |
|
|
35 |
src: "config.j2" |
|
|
36 |
dest: "/etc/soju/config" |
|
|
37 |
mode: "0644" |
|
|
38 |
notify: restart soju |
|
|
39 |
|
|
|
40 |
- name: enable soju service |
|
|
41 |
become: yes |
|
|
42 |
systemd: name="soju.service" enabled="yes" state="started" |
|
|
43 |
|
|
|
44 |
- name: flush handlers to ensure soju is restarted with latest config |
|
|
45 |
meta: flush_handlers |
|
|
46 |
|
|
|
47 |
- name: create soju admin user |
|
|
48 |
become: yes |
|
|
49 |
become_user: "{{soju_user}}" |
|
|
50 |
shell: "echo '{{soju_admin_password}}' | sojudb -config /etc/soju/config create-user {{soju_admin_user}} -admin" |
|
|
51 |
register: soju_create_user |
|
|
52 |
changed_when: soju_create_user.rc == 0 |
|
|
53 |
failed_when: soju_create_user.rc != 0 and 'duplicate key' not in soju_create_user.stderr |
|
|
54 |
no_log: true |
|
|
55 |
|
|
|
56 |
- name: create soju networks |
|
|
57 |
become: yes |
|
|
58 |
become_user: "{{soju_user}}" |
|
|
59 |
command: > |
|
|
60 |
sojuctl -config /etc/soju/config user run {{soju_admin_user}} |
|
|
61 |
network create |
|
|
62 |
-addr {{item.addr}} |
|
|
63 |
-name {{item.name}} |
|
|
64 |
-nick {{item.nick}} |
|
|
65 |
loop: "{{soju_networks}}" |
|
|
66 |
register: soju_network_create |
|
|
67 |
changed_when: soju_network_create.rc == 0 |
|
|
68 |
failed_when: soju_network_create.rc != 0 and 'already exists' not in soju_network_create.stderr |
|
|
69 |
no_log: true |
|
|
70 |
|
|
|
71 |
- name: configure soju network sasl |
|
|
72 |
become: yes |
|
|
73 |
become_user: "{{soju_user}}" |
|
|
74 |
command: > |
|
|
75 |
sojuctl -config /etc/soju/config user run {{soju_admin_user}} |
|
|
76 |
sasl set-plain -network {{item.name}} {{item.sasl_username}} {{item.sasl_password}} |
|
|
77 |
loop: "{{soju_networks}}" |
|
|
78 |
when: item.sasl_username is defined |
|
|
79 |
no_log: true |
|
|
80 |
|
|
|
81 |
- name: install nginx stream config |
|
|
82 |
become: yes |
|
|
83 |
template: |
|
|
84 |
src: "nginx-stream.conf.j2" |
|
|
85 |
dest: "/etc/nginx/streams-available/soju.conf" |
|
|
86 |
notify: reload nginx |
|
|
87 |
|
|
|
88 |
- name: enable nginx stream config |
|
|
89 |
become: yes |
|
|
90 |
file: |
|
|
91 |
src: "/etc/nginx/streams-available/soju.conf" |
|
|
92 |
dest: "/etc/nginx/streams-enabled/soju.conf" |
|
|
93 |
state: "link" |
|
|
94 |
notify: reload nginx |