From 5f7c0c0dce097503f6475526343b6673a4140393 Mon Sep 17 00:00:00 2001 From: theonlydoo Date: Sun, 4 Jan 2015 12:56:15 +0100 Subject: [PATCH] completion with wallabag vars and xmpp role from https://github.com/al3x/sovereign --- README.md | 7 + host_vars/localhost.example | 15 +- roles/prosody/handlers/main.yml | 2 + roles/prosody/tasks/main.yml | 4 + roles/prosody/tasks/prosody.yml | 29 ++++ roles/prosody/templates/prosody.cfg.lua.j2 | 175 +++++++++++++++++++++ 6 files changed, 229 insertions(+), 3 deletions(-) create mode 100644 roles/prosody/handlers/main.yml create mode 100644 roles/prosody/tasks/main.yml create mode 100644 roles/prosody/tasks/prosody.yml create mode 100755 roles/prosody/templates/prosody.cfg.lua.j2 diff --git a/README.md b/README.md index 88da047..b407067 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,13 @@ prosody_admin: "admin@test.net" prosody_virtual_domain: "test.net" prosody_accounts: admin@test.net +#Wallabag +wallabag_version: 1.7.1 +wallabag_domain: "read.{{ domain }}" +# wallabag_salt: (required) +wallabag_db_username: wallabag +# wallabag_db_password: (required) +wallabag_db_database: wallabag # vim: set textwidth=0 ft=yaml: ``` diff --git a/host_vars/localhost.example b/host_vars/localhost.example index de5640d..e81ba03 100644 --- a/host_vars/localhost.example +++ b/host_vars/localhost.example @@ -30,8 +30,17 @@ znc_version: 1.4 irc_password_salt: (required) # xmpp -prosody_admin: "{{ admin_email }}" -prosody_virtual_domain: "{{ domain }}" -prosody_accounts: (required) +prosody_admin: admin@test.net +prosody_virtual_domain: test.net +prosody_accounts: admin@test.net + +# wallabag +wallabag_version: 1.7.1 +wallabag_domain: "read.test.net" +wallabag_salt: (required) +wallabag_db_username: wallabag +wallabag_db_password: (required) +wallabag_db_database: wallabag + # vim: set textwidth=0 ft=yaml: diff --git a/roles/prosody/handlers/main.yml b/roles/prosody/handlers/main.yml new file mode 100644 index 0000000..6d9847e --- /dev/null +++ b/roles/prosody/handlers/main.yml @@ -0,0 +1,2 @@ +- name: restart prosody + command: /etc/init.d/prosody restart \ No newline at end of file diff --git a/roles/prosody/tasks/main.yml b/roles/prosody/tasks/main.yml new file mode 100644 index 0000000..45672eb --- /dev/null +++ b/roles/prosody/tasks/main.yml @@ -0,0 +1,4 @@ +--- +# Provides the Prosody Jabber/XMPP server. + +- include: prosody.yml tags=prosody diff --git a/roles/prosody/tasks/prosody.yml b/roles/prosody/tasks/prosody.yml new file mode 100644 index 0000000..b2231b6 --- /dev/null +++ b/roles/prosody/tasks/prosody.yml @@ -0,0 +1,29 @@ +- name: Ensure repository key for Prosody is in place + apt_key: url=https://prosody.im/files/prosody-debian-packages.key state=present + +# Prosody supplies repo for sid, squeeze, wheezy, jessie, trusty, saucy, raring, quantal, precise and lucid +- name: Add Prosody Debian/Ubuntu repository + apt_repository: repo="deb http://packages.prosody.im/debian {{ ansible_distribution_release }} main" + +- name: Install Prosody from official repository + apt: pkg=prosody update_cache=yes + +- name: Add prosody user to ssl-cert group + user: name=prosody groups=ssl-cert append=yes + +- name: Create Prosody data directory + file: state=directory path=/decrypted/prosody owner=prosody group=prosody + +- name: Configure Prosody + template: src=prosody.cfg.lua.j2 dest=/etc/prosody/prosody.cfg.lua group=root owner=root + notify: restart prosody + +- name: Create Prosody accounts + command: prosodyctl register {{ item.name }} {{ prosody_virtual_domain }} "{{ item.password }}" + with_items: prosody_accounts + +- name: Set firewall rules for Prosody + ufw: rule=allow port={{ item }} proto=tcp + with_items: + - 5222 # xmpp c2s + - 5269 # xmpp s2s diff --git a/roles/prosody/templates/prosody.cfg.lua.j2 b/roles/prosody/templates/prosody.cfg.lua.j2 new file mode 100755 index 0000000..43d6df5 --- /dev/null +++ b/roles/prosody/templates/prosody.cfg.lua.j2 @@ -0,0 +1,175 @@ +-- Prosody XMPP Server Configuration +-- +-- Information on configuring Prosody can be found on our +-- website at http://prosody.im/doc/configure +-- +-- Tip: You can check that the syntax of this file is correct +-- when you have finished by running: luac -p prosody.cfg.lua +-- If there are any errors, it will let you know what and where +-- they are, otherwise it will keep quiet. +-- +-- Good luck, and happy Jabbering! + + +---------- Server-wide settings ---------- +-- Settings in this section apply to the whole server and are the default settings +-- for any virtual hosts + +-- This is a (by default, empty) list of accounts that are admins +-- for the server. Note that you must create the accounts separately +-- (see http://prosody.im/doc/creating_accounts for info) +-- Example: admins = { "user1@example.com", "user2@example.net" } +admins = { "{{ prosody_admin }}" } + +-- Enable use of libevent for better performance under high load +-- For more information see: http://prosody.im/doc/libevent +--use_libevent = true; + +-- This is the list of modules Prosody will load on startup. +-- It looks for mod_modulename.lua in the plugins folder, so make sure that exists too. +-- Documentation on modules can be found at: http://prosody.im/doc/modules +modules_enabled = { + + -- Generally required + "roster"; -- Allow users to have a roster. Recommended ;) + "saslauth"; -- Authentication for clients and servers. Recommended if you want to log in. + "tls"; -- Add support for secure TLS on c2s/s2s connections + "dialback"; -- s2s dialback support + "disco"; -- Service discovery + "posix"; -- POSIX functionality, sends server to background, enables syslog, etc. + + -- Not essential, but recommended + "private"; -- Private XML storage (for room bookmarks, etc.) + "vcard"; -- Allow users to set vCards + + -- These are commented by default as they have a performance impact + "privacy"; -- Support privacy lists + --"compression"; -- Stream compression (requires the lua-zlib package installed) + + -- Nice to have + "version"; -- Replies to server version requests + "uptime"; -- Report how long server has been running + "time"; -- Let others know the time here on this server + "ping"; -- Replies to XMPP pings with pongs + -- "pep"; -- Enables users to publish their mood, activity, playing music and more + "register"; -- Allow users to register on this server using a client and change passwords + + -- Admin interfaces + "admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands + --"admin_telnet"; -- Opens telnet console interface on localhost port 5582 + + -- HTTP modules + --"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP" + --"http_files"; -- Serve static files from a directory over HTTP + + -- Other specific functionality + --"groups"; -- Shared roster support + --"announce"; -- Send announcement to all online users + --"welcome"; -- Welcome users who register accounts + --"watchregistrations"; -- Alert admins of registrations + --"motd"; -- Send a message to users when they log in + --"legacyauth"; -- Legacy authentication. Only used by some old clients and bots. +}; + +-- These modules are auto-loaded, but should you want +-- to disable them then uncomment them here: +modules_disabled = { + -- "offline"; -- Store offline messages + -- "c2s"; -- Handle client connections + -- "s2s"; -- Handle server-to-server connections +}; + +-- Disable account creation by default, for security +-- For more information see http://prosody.im/doc/creating_accounts +allow_registration = false; + +-- These are the SSL/TLS-related settings. If you don't want +-- to use SSL/TLS, you may comment or remove this +ssl = { + key = "/etc/ssl/private/wildcard_private.key"; + certificate = "/etc/ssl/certs/wildcard_public_cert.crt"; +} + +-- Force clients to use encrypted connections? This option will +-- prevent clients from authenticating unless they are using encryption. + +c2s_require_encryption = true + +-- Force certificate authentication for server-to-server connections? +-- This provides ideal security, but requires servers you communicate +-- with to support encryption AND present valid, trusted certificates. +-- NOTE: Your version of LuaSec must support certificate verification! +-- For more information see http://prosody.im/doc/s2s#security + +s2s_secure_auth = false + +-- Many servers don't support encryption or have invalid or self-signed +-- certificates. You can list domains here that will not be required to +-- authenticate using certificates. They will be authenticated using DNS. + +--s2s_insecure_domains = { "gmail.com" } + +-- Even if you leave s2s_secure_auth disabled, you can still require valid +-- certificates for some domains by specifying a list here. + +--s2s_secure_domains = { "jabber.org" } + +-- Required for init scripts and prosodyctl +pidfile = "/var/run/prosody/prosody.pid" + +-- Select the authentication backend to use. The 'internal' providers +-- use Prosody's configured data storage to store the authentication data. +-- To allow Prosody to offer secure authentication mechanisms to clients, the +-- default provider stores passwords in plaintext. If you do not trust your +-- server please see http://prosody.im/doc/modules/mod_auth_internal_hashed +-- for information about using the hashed backend. + +authentication = "internal_plain" + +-- Select the storage backend to use. By default Prosody uses flat files +-- in its configured data directory, but it also supports more backends +-- through modules. An "sql" backend is included by default, but requires +-- additional dependencies. See http://prosody.im/doc/storage for more info. + +--storage = "sql" -- Default is "internal" + +-- For the "sql" backend, you can uncomment *one* of the below to configure: +--sql = { driver = "SQLite3", database = "prosody.sqlite" } -- Default. 'database' is the filename. +--sql = { driver = "MySQL", database = "prosody", username = "prosody", password = "secret", host = "localhost" } +--sql = { driver = "PostgreSQL", database = "prosody", username = "prosody", password = "secret", host = "localhost" } + +-- Logging configuration +-- For advanced logging see http://prosody.im/doc/logging +log = { + info = "/var/log/prosody/prosody.log"; -- Change 'info' to 'debug' for verbose logging + error = "/var/log/prosody/prosody.err"; + "*syslog"; +} + +data_path = "/decrypted/prosody" + +----------- Virtual hosts ----------- +-- You need to add a VirtualHost entry for each domain you wish Prosody to serve. +-- Settings under each VirtualHost entry apply *only* to that host. + +VirtualHost "{{ prosody_virtual_domain }}" + +------ 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 tr3ansfers: +--Component "proxy.example.com" "proxy65" + +---Set up an external component (default component port is 5347) +-- +-- External components allow adding various services, such as gateways/ +-- transports to other networks like ICQ, MSN and Yahoo. For more info +-- see: http://prosody.im/doc/components#adding_an_external_component +-- +--Component "gateway.example.com" +-- component_secret = "password"