From 5caef1ed20a586d1c9bd1b9029938fb701d54282 Mon Sep 17 00:00:00 2001 From: neutron Date: Fri, 10 Aug 2018 15:01:02 +0200 Subject: [PATCH] [trees] - install dovecot from debian backports, enable pop3 * adds compatibility for dovecots maildir * adds role for installing debian backports * installs newer version of dovecot 2.2.* from debian backports * in newer versions of dovecot >= 2.2.31 cache index corruption is fixed * adds note in README.md * adds POP3 functionality --- vagrant/ansible/playbook.yml | 1 + .../ansible/roles/dovecot/tasks/install.yml | 1 + .../install_dovecot_libsodium_plugin.yml | 1 + .../templates/dovecot/conf.d/10-mail.conf.j2 | 4 +- .../roles/jnv.debian-backports/README.md | 40 ++++++++++ .../roles/jnv.debian-backports/UNLICENSE | 24 ++++++ .../meta/.galaxy_install_info | 1 + .../roles/jnv.debian-backports/meta/main.yml | 79 +++++++++++++++++++ .../roles/jnv.debian-backports/tasks/main.yml | 6 ++ .../jnv.debian-backports/vars/Debian.yml | 3 + .../jnv.debian-backports/vars/Ubuntu.yml | 3 + .../roles/jnv.debian-backports/vars/main.yml | 2 + vagrant/ansible/roles/trees/tasks/install.yml | 1 + 13 files changed, 164 insertions(+), 2 deletions(-) create mode 100644 vagrant/ansible/roles/jnv.debian-backports/README.md create mode 100644 vagrant/ansible/roles/jnv.debian-backports/UNLICENSE create mode 100644 vagrant/ansible/roles/jnv.debian-backports/meta/.galaxy_install_info create mode 100644 vagrant/ansible/roles/jnv.debian-backports/meta/main.yml create mode 100644 vagrant/ansible/roles/jnv.debian-backports/tasks/main.yml create mode 100644 vagrant/ansible/roles/jnv.debian-backports/vars/Debian.yml create mode 100644 vagrant/ansible/roles/jnv.debian-backports/vars/Ubuntu.yml create mode 100644 vagrant/ansible/roles/jnv.debian-backports/vars/main.yml diff --git a/vagrant/ansible/playbook.yml b/vagrant/ansible/playbook.yml index 17b64f7..3490a53 100644 --- a/vagrant/ansible/playbook.yml +++ b/vagrant/ansible/playbook.yml @@ -32,6 +32,7 @@ # - install libsodium from normal debian repos (current version 1.0.12) # - uses ARGON2 roles: + - jnv.debian-backports - init - mariadb - postfix diff --git a/vagrant/ansible/roles/dovecot/tasks/install.yml b/vagrant/ansible/roles/dovecot/tasks/install.yml index e498851..d032533 100644 --- a/vagrant/ansible/roles/dovecot/tasks/install.yml +++ b/vagrant/ansible/roles/dovecot/tasks/install.yml @@ -27,6 +27,7 @@ apt: pkg: "{{ item }}" state: present + default_release: "{{ ansible_distribution_release }}-backports" with_items: - dovecot-core - dovecot-common diff --git a/vagrant/ansible/roles/dovecot/tasks/install_dovecot_libsodium_plugin.yml b/vagrant/ansible/roles/dovecot/tasks/install_dovecot_libsodium_plugin.yml index d15a8ec..ca0bad9 100644 --- a/vagrant/ansible/roles/dovecot/tasks/install_dovecot_libsodium_plugin.yml +++ b/vagrant/ansible/roles/dovecot/tasks/install_dovecot_libsodium_plugin.yml @@ -3,6 +3,7 @@ apt: pkg: "{{ item }}" state: present + default_release: "{{ ansible_distribution_release }}-backports" with_items: - build-essential - dovecot-core diff --git a/vagrant/ansible/roles/dovecot/templates/dovecot/conf.d/10-mail.conf.j2 b/vagrant/ansible/roles/dovecot/templates/dovecot/conf.d/10-mail.conf.j2 index cf2a040..260d521 100644 --- a/vagrant/ansible/roles/dovecot/templates/dovecot/conf.d/10-mail.conf.j2 +++ b/vagrant/ansible/roles/dovecot/templates/dovecot/conf.d/10-mail.conf.j2 @@ -28,8 +28,8 @@ # # -#mail_location = mdbox:/var/vmail/%Ld/%Ln/Maildir -mail_location = {{ dovecot_mailbox_type }}:/var/vmail/%Ld/%Ln/Maildir +mail_home = /var/vmail/%Ld/%Ln +mail_location = {{ dovecot_mailbox_type }}:~/Maildir # If you need to set multiple mailbox locations or want to change default # namespace settings, you can do it by defining namespace sections. diff --git a/vagrant/ansible/roles/jnv.debian-backports/README.md b/vagrant/ansible/roles/jnv.debian-backports/README.md new file mode 100644 index 0000000..1de495e --- /dev/null +++ b/vagrant/ansible/roles/jnv.debian-backports/README.md @@ -0,0 +1,40 @@ +# [Debian/Ubuntu Backports with Ansible](https://github.com/jnv/ansible-role-debian-backports) + +Adds backports repository for Debian and Ubuntu. + +## Usage + +Install via [Galaxy](https://galaxy.ansibleworks.com/): + +``` +ansible-galaxy install jnv.debian-backports +``` + +In your playbook: + +```yaml +- hosts: all + roles: + # ... + - jnv.debian-backports +``` + +The role uses [apt_repository module](http://docs.ansible.com/apt_repository_module.html) which has additional dependencies. I highly recommend to use [bootstrap-debian](https://github.com/cederberg/ansible-bootstrap-debian) role to setup common Ansible requirements on Debian-based systems. + +You can use `default_release` option for [apt module](http://docs.ansible.com/apt_module.html) to install package from backports. For example: + +```yaml +tasks: + - apt: name=mosh state=present default_release={{ansible_distribution_release}}-backports +``` + +`ansible_distribution_release` variable contains release name, i.e. `precise` or `wheezy`. + +## Variables + +- `backports_uri`: URI of the backports repository; change this if you want to use a particular mirror. + + Debian: `http://ftp.debian.org/debian` + + Ubuntu: `http://archive.ubuntu.com/ubuntu` +- `backports_components`: Release and components for sources.list + + Debian: `{{backports_distribution}}-backports backports main contrib non-free` + + Ubuntu: `{{backports_distribution}}-backports main restricted universe multiverse` diff --git a/vagrant/ansible/roles/jnv.debian-backports/UNLICENSE b/vagrant/ansible/roles/jnv.debian-backports/UNLICENSE new file mode 100644 index 0000000..cf1ab25 --- /dev/null +++ b/vagrant/ansible/roles/jnv.debian-backports/UNLICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/vagrant/ansible/roles/jnv.debian-backports/meta/.galaxy_install_info b/vagrant/ansible/roles/jnv.debian-backports/meta/.galaxy_install_info new file mode 100644 index 0000000..2c9fe53 --- /dev/null +++ b/vagrant/ansible/roles/jnv.debian-backports/meta/.galaxy_install_info @@ -0,0 +1 @@ +{install_date: 'Fri Aug 10 08:05:23 2018', version: v0.2.0} diff --git a/vagrant/ansible/roles/jnv.debian-backports/meta/main.yml b/vagrant/ansible/roles/jnv.debian-backports/meta/main.yml new file mode 100644 index 0000000..f73d4dc --- /dev/null +++ b/vagrant/ansible/roles/jnv.debian-backports/meta/main.yml @@ -0,0 +1,79 @@ +--- +galaxy_info: + author: Jan Vlnas + description: Add backports repository for Debian and Ubuntu + license: Unlicense + min_ansible_version: 1.2 + # + # Below are all platforms currently available. Just uncomment + # the ones that apply to your role. If you don't see your + # platform on this list, let us know and we'll get it added! + # + platforms: + #- name: EL + # versions: + # - all + # - 5 + # - 6 + #- name: GenericUNIX + # versions: + # - all + # - any + #- name: Fedora + # versions: + # - all + # - 16 + # - 17 + # - 18 + # - 19 + # - 20 + #- name: opensuse + # versions: + # - all + # - 12.1 + # - 12.2 + # - 12.3 + # - 13.1 + # - 13.2 + #- name: GenericBSD + # versions: + # - all + # - any + #- name: FreeBSD + # versions: + # - all + # - 8.0 + # - 8.1 + # - 8.2 + # - 8.3 + # - 8.4 + # - 9.0 + # - 9.1 + # - 9.1 + # - 9.2 + - name: Ubuntu + versions: + - all + - name: Debian + versions: + - all + categories: + #- cloud + #- cloud:ec2 + #- cloud:gce + #- cloud:rax + #- database + #- database:nosql + #- database:sql + #- development + #- monitoring + #- networking + - packaging + - system + #- web +dependencies: [] + # List your role dependencies here, one per line. Only + # dependencies available via galaxy should be listed here. + # Be sure to remove the '[]' above if you add dependencies + # to this list. + diff --git a/vagrant/ansible/roles/jnv.debian-backports/tasks/main.yml b/vagrant/ansible/roles/jnv.debian-backports/tasks/main.yml new file mode 100644 index 0000000..87fd77a --- /dev/null +++ b/vagrant/ansible/roles/jnv.debian-backports/tasks/main.yml @@ -0,0 +1,6 @@ +--- +- name: add distribution-specific variables + include_vars: "{{ ansible_distribution }}.yml" + +- name: add backports repository + apt_repository: repo='deb {{backports_uri}} {{backports_components}}' state=present update_cache=yes diff --git a/vagrant/ansible/roles/jnv.debian-backports/vars/Debian.yml b/vagrant/ansible/roles/jnv.debian-backports/vars/Debian.yml new file mode 100644 index 0000000..4943727 --- /dev/null +++ b/vagrant/ansible/roles/jnv.debian-backports/vars/Debian.yml @@ -0,0 +1,3 @@ +--- +backports_uri: http://http.debian.net/debian +backports_components: "{{backports_distribution}}-backports main contrib non-free" diff --git a/vagrant/ansible/roles/jnv.debian-backports/vars/Ubuntu.yml b/vagrant/ansible/roles/jnv.debian-backports/vars/Ubuntu.yml new file mode 100644 index 0000000..6666ac7 --- /dev/null +++ b/vagrant/ansible/roles/jnv.debian-backports/vars/Ubuntu.yml @@ -0,0 +1,3 @@ +--- +backports_uri: http://archive.ubuntu.com/ubuntu +backports_components: "{{backports_distribution}}-backports main restricted universe multiverse" diff --git a/vagrant/ansible/roles/jnv.debian-backports/vars/main.yml b/vagrant/ansible/roles/jnv.debian-backports/vars/main.yml new file mode 100644 index 0000000..0b79f68 --- /dev/null +++ b/vagrant/ansible/roles/jnv.debian-backports/vars/main.yml @@ -0,0 +1,2 @@ +--- +backports_distribution: "{{ansible_distribution_release}}" diff --git a/vagrant/ansible/roles/trees/tasks/install.yml b/vagrant/ansible/roles/trees/tasks/install.yml index 76912d2..8903173 100644 --- a/vagrant/ansible/roles/trees/tasks/install.yml +++ b/vagrant/ansible/roles/trees/tasks/install.yml @@ -4,6 +4,7 @@ apt: pkg: "{{ item }}" state: present + default_release: "{{ ansible_distribution_release }}-backports" with_items: - build-essential - dovecot-core