diff options
Diffstat (limited to 'prosody')
| -rw-r--r-- | prosody/defaults/main.yaml | 6 | ||||
| -rw-r--r-- | prosody/handlers/main.yaml | 5 | ||||
| -rw-r--r-- | prosody/tasks/main.yaml | 59 | ||||
| -rw-r--r-- | prosody/templates/prosody.cfg.lua.j2 | 31 | ||||
| -rw-r--r-- | prosody/templates/setup_db.psql.j2 | 2 |
5 files changed, 103 insertions, 0 deletions
diff --git a/prosody/defaults/main.yaml b/prosody/defaults/main.yaml new file mode 100644 index 0000000..440d5c2 --- /dev/null +++ b/prosody/defaults/main.yaml @@ -0,0 +1,6 @@ +--- + +prosody_ssl_dir: "/etc/prosody/certs/{{prosody_vhost}}" + +prosody_db: "prosody_{{prosody_instance}}" +prosody_db_port: "5432" diff --git a/prosody/handlers/main.yaml b/prosody/handlers/main.yaml new file mode 100644 index 0000000..fea0e7d --- /dev/null +++ b/prosody/handlers/main.yaml @@ -0,0 +1,5 @@ +--- + +- name: restart prosody + become: yes + systemd: name="prosody.service" enabled="yes" daemon_reload="yes" diff --git a/prosody/tasks/main.yaml b/prosody/tasks/main.yaml new file mode 100644 index 0000000..e58cd0b --- /dev/null +++ b/prosody/tasks/main.yaml @@ -0,0 +1,59 @@ +--- + +- name: install prosody + become: yes + apt: name="{{item}}" + notify: restart prosody + loop: + - "prosody" + - "lua-dbi-postgresql" + +- name: configure prosody + become: yes + template: + src: "prosody.cfg.lua.j2" + dest: "/etc/prosody/conf.avail/{{prosody_vhost}}.cfg.lua" + notify: restart prosody + +- name: install prosody site + become: yes + template: src="prosody.cfg.lua.j2" dest="/etc/prosody/conf.avail/{{prosody_vhost}}.cfg.lua" + notify: restart prosody + +- name: copy ssl keys + become: yes + copy: + src: "{{item}}" + dest: "{{prosody_ssl_dir}}/" + remote_src: yes + mode: "0640" + owner: "root" + group: "prosody" + notify: restart prosody + loop: + - "{{prosody_ssl_privkey_src}}" + - "{{prosody_ssl_cert_src}}" + +- name: install db schema file + become: yes + template: + src: "setup_db.psql.j2" + dest: "/tmp/setup_db_{{prosody_db}}.psql" + owner: "postgres" + group: "postgres" + mode: "0600" + changed_when: false + +- name: install psql + become: yes + become_user: "postgres" + command: "psql -f /tmp/setup_db_{{prosody_db}}.psql" + changed_when: false + +- name: enable prosody site + become: yes + file: + src: "/etc/prosody/conf.avail/{{prosody_vhost}}.cfg.lua" + dest: "/etc/prosody/conf.d/{{prosody_vhost}}.cfg.lua" + state: "link" + notify: restart prosody diff --git a/prosody/templates/prosody.cfg.lua.j2 b/prosody/templates/prosody.cfg.lua.j2 new file mode 100644 index 0000000..32bc1a6 --- /dev/null +++ b/prosody/templates/prosody.cfg.lua.j2 @@ -0,0 +1,31 @@ +VirtualHost "{{prosody_vhost}}" + +ssl = { + key = "{{prosody_ssl_privkey}}"; + certificate = "{{prosody_ssl_cert}}"; +} + +storage = "sql" +sql = { + driver = "PostgreSQL"; + database = "{{prosody_db}}"; + host = "localhost"; + port = {{prosody_db_port}}; + username = "{{prosody_db}}"; + password = "{{prosody_db_pass}}"; +} + +------ Components ------ +-- You can specify components to add hosts that provide special services, +-- like multi-user conferences, and transports. +-- For more information on components, see http://prosody.im/doc/components + +-- Set up a MUC (multi-user chat) room server on conference.example.com: +--Component "conference.example.com" "muc" + +-- Set up a SOCKS5 bytestream proxy for server-proxied file transfers: +--Component "proxy.example.com" "proxy65" + +---Set up an external component (default component port is 5347) +--Component "gateway.example.com" +-- component_secret = "password" diff --git a/prosody/templates/setup_db.psql.j2 b/prosody/templates/setup_db.psql.j2 new file mode 100644 index 0000000..25e9ec0 --- /dev/null +++ b/prosody/templates/setup_db.psql.j2 @@ -0,0 +1,2 @@ +CREATE USER {{prosody_db}} WITH ENCRYPTED PASSWORD '{{prosody_db_pass}}'; +CREATE DATABASE {{prosody_db}} ENCODING 'UTF8' LC_COLLATE='C.UTF-8' LC_CTYPE='C.UTF-8' template=template0 OWNER {{prosody_db}}; |
