|
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 |