Compare commits

...

62 Commits

Author SHA1 Message Date
Lucas Costa Beyeler a283e67fdd
Merge pull request #24 from UdelaRInterior/agregarCaseUbuntu20
Including installer for Ubuntu 20
2025-08-17 11:33:23 +01:00
Romina Brown e15bdb4af2 Se agrega instalador para Ubuntu 20 2025-07-24 11:12:27 -03:00
Lucas Costa Beyeler 11a626355e Removing reference to old versions and removing var folder 2021-02-06 19:25:51 +00:00
Lucas Costa Beyeler 6b02ae84f9 Merge branch 'master' of https://github.com/lucascbeyeler/zimbra 2021-02-06 19:20:47 +00:00
Lucas Costa Beyeler 4e39e65ac1
Merge pull request #16 from UdelaRInterior/hosts-file-config 2021-01-21 06:28:06 +00:00
mgodoy 774a027d8f adding task to update /etc/hosts if required 2021-01-20 14:04:43 -03:00
Lucas Costa Beyeler 02dc7b81cc
Merge pull request #15 from UdelaRInterior/move-vars-to-defaults
move vars to defualts for precedence
2021-01-16 18:56:08 +00:00
mgodoy a4a5c710f3 move vars to defualts for precedence 2021-01-13 11:30:18 -03:00
Lucas Costa Beyeler f6cab03c39
Update FUNDING.yml 2020-12-19 13:17:20 +00:00
Lucas Costa Beyeler 07fdf94835
Create FUNDING.yml 2020-12-19 13:16:56 +00:00
Lucas Costa Beyeler df5f2f64f0
Update main.yml 2020-12-13 16:21:59 +00:00
Lucas Costa Beyeler b584847a3d
Update main.yml 2020-12-13 16:21:36 +00:00
Lucas Costa Beyeler 173dc5d2b2 Remove idea folder 2020-12-08 10:43:00 +00:00
Lucas Costa Beyeler ae30094f38 Fixing the default version to 8.8.15 2020-12-08 10:41:00 +00:00
Lucas Costa Beyeler 52cde71718 Enabling support to Zimbra 8.8.15 and dropping the support to any other version 2020-12-08 10:37:41 +00:00
Lucas Costa Beyeler a220d76add
Merge pull request #13 from danitfk/develop
Supports 8.8.12 version
2020-12-07 16:00:43 +00:00
Daniel Gordi 703aa09a6b
Change default version to 8.8.12 2019-04-05 21:14:01 +04:30
Daniel Gordi 5b1dc256f0
Add main.yml into .gitignore 2019-04-05 21:11:54 +04:30
Daniel Gordi 68eb3d980f
Update README 2019-04-05 21:09:55 +04:30
Daniel Gordi 5083afead5
Add Supports for Ubuntu 18.04 and Version 8.8.12GA 2019-04-05 21:08:17 +04:30
Lucas Costa Beyeler 3bda4ac1e6 Including variable to inform Zimbra version
Now you can set which version of Zimbra you want to use. For now only versions 8.8.5 to 8.8.10 is available. For the future, old versions will be included too!
2018-10-16 22:44:11 +01:00
Lucas Costa Beyeler 79156641a8 Removing bugfix for 8.8.5 2018-04-07 11:33:52 -03:00
Lucas Costa Beyeler 1b7e74a629 Updating playbook to Zimbra version 8.8.8 2018-04-07 11:31:36 -03:00
Lucas Costa Beyeler 9d7563a37b
Update README.md 2018-01-07 00:57:57 -02:00
Lucas Costa Beyeler 8e2be51f11 Updating Ansible version Bugfix for Zimbra 8.8.5 not working the access by IP and updating script to Ansible 2.4 Bugfix for Zimbra 8.8.5 not working the access by IP 1 hour ago Changing version to 8.8.5 Updating download address to 8.8 3 hours ago Updating to Zimbra 8.8 12 hours ago Bugfix #11 - Role fails to find local zimbra commands 3 months ago Including Antispam Auto Update Update README.md Including bayesian mail filtering options 4 months ago Update sauser.cf Bugfix - part of the code was comment for debug. 5 months ago Updating README.md Updating README.md Uploading new test.yml Updating README.md Correcting README.md Bugfix - Ignoring errors from the restart step Rewrite of the README.md Bugfix - Enabling zimbra reboot after playbook run Bugfix - Removing variables for logo Bugfix - Wrong name for the services 3 file changes in working directory View changes commit:90bc5a Bugfix for Zimbra 8.8.5 not working the access by IP 2018-01-06 22:13:59 -02:00
Lucas Costa Beyeler 732a0d8a81 Updating Ansible version 2018-01-06 21:18:09 -02:00
Lucas Costa Beyeler 844c9eb9e5 Bugfix for Zimbra 8.8.5 not working the access by IP and updating script to Ansible 2.4 2018-01-06 21:16:26 -02:00
Lucas Costa Beyeler 90bc5a8e21 Bugfix for Zimbra 8.8.5 not working the access by IP 2018-01-06 20:31:32 -02:00
Lucas Costa Beyeler 651cc2d3d2 Changing version to 8.8.5 2018-01-06 19:41:44 -02:00
Lucas Costa Beyeler 4b41e04660 Updating download address to 8.8 2018-01-06 10:45:10 -02:00
Lucas Costa Beyeler a087dfe4b0 Updating to Zimbra 8.8 2018-01-05 23:11:45 -02:00
Lucas Costa Beyeler 7ff56df9f9 Bugfix #11 - Role fails to find local zimbra commands 2017-09-27 16:34:18 -03:00
Lucas Costa Beyeler d077dc7041 Including Antispam Auto Update 2017-09-05 11:12:24 -03:00
Lucas Costa Beyeler 6c9017fe07 Update README.md 2017-09-03 16:07:01 -03:00
Lucas Costa Beyeler 2c40358b68 Including bayesian mail filtering options 2017-08-10 15:17:12 -03:00
Lucas Costa Beyeler 4c185f74da Update sauser.cf 2017-08-10 15:14:35 -03:00
lucascbeyeler a51733fd35 Bugfix - part of the code was comment for debug. 2017-07-16 17:41:06 -03:00
lucascbeyeler a9e2ebd47f Updating README.md 2017-07-09 20:15:46 -03:00
lucascbeyeler eef095e327 Updating README.md 2017-07-09 19:10:25 -03:00
lucascbeyeler 44c7b99c62 Uploading new test.yml 2017-07-09 19:03:29 -03:00
lucascbeyeler bd5df26f88 Updating README.md 2017-07-09 18:57:42 -03:00
lucascbeyeler 9ccb985d7b Correcting README.md 2017-07-09 18:49:49 -03:00
lucascbeyeler fd004472fd Bugfix - Ignoring errors from the restart step 2017-07-09 18:47:58 -03:00
lucascbeyeler eb6920f849 Rewrite of the README.md 2017-07-09 18:46:40 -03:00
lucascbeyeler 67db274b0f Bugfix - Enabling zimbra reboot after playbook run 2017-07-09 18:34:05 -03:00
lucascbeyeler a814e994a6 Bugfix - Removing variables for logo 2017-07-09 18:30:47 -03:00
lucascbeyeler 7c33cb8def Bugfix - Wrong name for the services 2017-07-09 18:27:05 -03:00
lucascbeyeler af496f1ab0 Bugfix - PolicyD broking the script 2017-07-09 18:25:32 -03:00
lucascbeyeler 2570903fa7 Bugfix - Donwloading wrong version 2017-07-09 18:04:13 -03:00
lucascbeyeler 535568b78e Bugfix - Playbook broking when upload keystroke file 2017-07-09 17:59:25 -03:00
lucascbeyeler fc3379029d Bugfix - Playbook broking when upload keystroke file 2017-07-09 17:58:13 -03:00
lucascbeyeler f2ac5cbb61 Bugfix - Playbook broking when upload keystroke file 2017-07-09 17:46:33 -03:00
lucascbeyeler 6c51c8ca67 Bugfix - playbook trying to execute RedHat code 2017-07-09 17:41:08 -03:00
lucascbeyeler caaf3aa210 Bugfix - playbook trying to execute RedHat code 2017-07-09 17:37:12 -03:00
lucascbeyeler 72057a6504 Bugfix - playbook is crashing if zimbra user does not exist 2017-07-09 17:35:02 -03:00
lucascbeyeler 6be782c631 Bugfix - playbook is crashing if zimbra user does not exist 2017-07-09 17:30:34 -03:00
lucascbeyeler de171a0fdd Bugfix in playbook's syntax 2017-07-09 17:28:11 -03:00
lucascbeyeler 968047063e Bugfix in playbook's syntax 2017-07-09 17:26:24 -03:00
lucascbeyeler d595f6bce7 Rewriting playbook for multiserver purpose 2017-07-09 17:13:25 -03:00
lucascbeyeler 770ade33bd Rewriting playbook for multiserver purpose 2017-07-09 17:06:04 -03:00
lucascbeyeler e82a8896c9 Playbook rewrite 2017-07-09 16:55:00 -03:00
Lucas Costa Beyeler 4efa68ab68 Rewrite playbook 2017-07-08 16:12:58 -03:00
31 changed files with 440 additions and 337 deletions

3
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,3 @@
# These are supported funding model platforms
github: [lucascbeyeler]

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
OLD
.idea

View File

@ -25,7 +25,7 @@ install:
- printf '[defaults]\nroles_path=../' >ansible.cfg - printf '[defaults]\nroles_path=../' >ansible.cfg
# Install ansible-commons # Install ansible-commons
- ansible-galaxy install lucascbeyeler.commons - ansible-galaxy install lucascbeyeler.baseline
script: script:
# Basic role syntax check # Basic role syntax check

View File

@ -1,32 +1,25 @@
Ansible-Zimbra Zimbra
========= =========
Ansible role to install and configure Zimbra Collaboration Open Source Edition in a monoserver environment Non-Official ansible role to install and configure Zimbra Collaboration Open Source Edition on Red Hat, CentOS and Ubuntu Server.
[![Build Status](https://travis-ci.org/lucascbeyeler/ansible-zimbra.svg?branch=master)](https://travis-ci.org/lucascbeyeler/ansible-zimbra) [![Build Status](https://travis-ci.org/lucascbeyeler/zimbra.svg?branch=master)](https://travis-ci.org/lucascbeyeler/zimbra)
[![Zimbra Version](https://img.shields.io/badge/Zimbra-8.7.11-blue.svg)](https://www.zimbra.com/downloads/zimbra-collaboration-open-source/) [![Zimbra Version](https://img.shields.io/badge/Zimbra-8.8.15-blue.svg)](https://www.zimbra.com/downloads/zimbra-collaboration-open-source/)
![Linux Distro](https://img.shields.io/badge/platform-CentOS%20%7C%20Red%20Hat%20%7C%20Ubuntu-blue.svg)
![Branch](https://img.shields.io/badge/Branch-Master-green.svg)
[![Ansible Version](https://img.shields.io/badge/Ansible-2.9.6-green.svg)](https://www.ansible.com/)
Requirements Requirements
------------ ------------
* [Ansible](https://github.com/ansible/ansible) 2.2.0 or superior. Less than this and you will have problems running Zimbra's Playbook. See ansible-modules-core Bug #4202 * [Ansible](https://github.com/ansible/ansible) 2.9.6 or high.
* Configure de file /etc/ansible/ansible.cfg (create if don't exist) and set this options - not required if you using key and the ssh user is "root" already:
```
[defaults]
host_key_checking=False
stdout_callback=skippy
[ssh_connection]
pipelining=True
```
Install Install
-------------- --------------
ansible-zimbra is already in Ansible Galaxy, so the only thing you need to install this script in your machine is just use ansible-galaxy command: Zimbra is already in Ansible Galaxy, so the only thing you need to install this script in your machine is just use ansible-galaxy command:
``` ```
ansible-galaxy install lucascbeyeler.ansible-zimbra ansible-galaxy install lucascbeyeler.zimbra
``` ```
Update Update
@ -34,19 +27,20 @@ Update
When a new version of ansible-zimbra is released, you will need to run the install process again, but with the "-f" or "--force" parameter. When a new version of ansible-zimbra is released, you will need to run the install process again, but with the "-f" or "--force" parameter.
``` ```
ansible-galaxy install -f lucascbeyeler.ansible-zimbra ansible-galaxy install -f lucascbeyeler.zimbra
``` ```
Features Features
-------------- --------------
* Run many times you want to apply the configuration - installatin only occur if the server has no Zimbra installed
* Configuring SpamAssassin, Pyzor and Razor; * Configuring SpamAssassin, Pyzor and Razor;
* Configure a logo for your server - **WARNING**: [Read this article for more details about the logo](https://blog.zimbra.com/2015/09/change-login-app-logo-open-source-network-edition/); * Configure a logo for your server - **WARNING**: [Read this article for more details about the logo](https://blog.zimbra.com/2015/09/change-login-app-logo-open-source-network-edition/);
* Enable PolicyD service and web admin; * Enable PolicyD service and web admin;
* Proxy Admin; * Proxy Admin;
* HTTP to HTTPS redirect; * HTTP to HTTPS redirect;
* LMTP Host Lookup in Native mode; * LMTP Host Lookup in Native mode;
* Chat and ownCloud plugin; * Customize your Zimbra OSE server;
Role Variables Role Variables
@ -59,11 +53,30 @@ Role Variables
* **zmlogologin:** Inform the path for your logo (Login Screen) - don't inform and no image will be applied; * **zmlogologin:** Inform the path for your logo (Login Screen) - don't inform and no image will be applied;
* **zmlogoapp:** Inform the path for your logo (Application Screen) - don't inform and no image will be applied; * **zmlogoapp:** Inform the path for your logo (Application Screen) - don't inform and no image will be applied;
* **timezone:** inform the timezone the playbook should set in your server; * **timezone:** inform the timezone the playbook should set in your server;
* **zimbra_version:** Inform which version of Zimbra you want to install. Default: 8.8.15
Service Variables - Inform "y" or "n"
--------------
* **zimbra_ldap:** Enable Zimbra LDAP Server - default: **y**
* **zimbra_logger:** Enable Zimbra Logger Service - default: **y**
* **zimbra_mta:** Enable Zimbra MTA Service - default: **y**
* **zimbra_dnscache:** Enable Zimbra DNS Cache Service (unbound) - default: **n**
* **zimbra_snmp:** Enable Zimbra SNMP Checks - default: **n**
* **zimbra_store:** Enable Zimbra Store Service - default: **y**
* **zimbra_apache:** Enable Zimbra Web Interface (Apache Web Server) - default: **y**
* **zimbra_spell:** Enable Zimbra Spell Check - default: **y**
* **zimbra_memcached:** Enable Zimbra Cache Service (Memcached) - default: **y**
* **zimbra_proxy:** Enable Zimbra Proxy Service - default: **y**
* **zimbra_chat:** Enable Zimbra Chat - default: **n**
* **zimbra_drive:** Enable Zimbra ownCloud Drive - default: **n**
* **zimbra_imapd:** Enable Zimbra IMAPD Solo Service **BETA** - default: **n**
* **zimbra_policyd:** Enable Zimbra PolicyD Service - default: **n**
Dependencies Dependencies
------------ ------------
To run this playbook, you will need to run [lucascbeyeler.commons](https://github.com/lucascbeyeler/ansible-commons) too. We do not cover any kind of server preparation, like upgrade the system or change the hostname (even put the hostname in /etc/hosts is made by commons). The motive is because all my playbooks will need some kind of preparation before executed, so to not including the same code in every single project, I made a different playbook that will do everything that is considered "common" in each one of my playbooks. To run this playbook, you will need to run [lucascbeyeler.baseline](https://github.com/lucascbeyeler/baseline) too. We do not cover any kind of server preparation, like upgrade the system or change the hostname (even put the hostname in /etc/hosts is made by commons). The motive is because all my playbooks will need some kind of preparation before executed, so to not including the same code in every single project, I made a different playbook that will do everything that is considered "common" in each one of my playbooks.
Example Playbook Example Playbook
---------------- ----------------
@ -72,9 +85,9 @@ Example Playbook
become: yes become: yes
become_method: sudo become_method: sudo
roles: roles:
- role: lucascbeyeler.ansible-zimbra - role: lucascbeyeler.zimbra
hostname: warudo hostname: localhost
domain: hollowbastion.com domain: localdomain
timezone: America/Sao_Paulo timezone: America/Sao_Paulo
zmpasswd: 123change zmpasswd: 123change
zmnetwork: 192.168.122.0/24 zmnetwork: 192.168.122.0/24
@ -85,9 +98,11 @@ Example Playbook
License License
------- -------
GNU GENERAL PUBLIC LICENSE [![GNU GPL v3.0](http://www.gnu.org/graphics/gplv3-127x51.png)](http://www.gnu.org/licenses/gpl.html)
View official GNU site <http://www.gnu.org/licenses/gpl.html>.
Author Information Author Information
------------------ ------------------
https://github.com/lucascbeyeler * [Lucas Costa Beyeler](https://github.com/lucascbeyeler) - lucas.costab@outlook.com

View File

@ -1,2 +1,47 @@
--- absent:
# defaults file for zimbra - postfix
- sendmail
ubuntu:
- razor
- pyzor
centos:
- pyzor
- perl-Razor-Agent
#
# Products to be installed
################################################################################
zimbra_ldap: y
zimbra_logger: y
zimbra_mta: y
zimbra_dnscache: n
zimbra_snmp: n
zimbra_store: y
zimbra_apache: y
zimbra_spell: y
zimbra_memcached: y
zimbra_proxy: y
zimbra_chat: n
zimbra_drive: n
zimbra_imapd: n
zimbra_policyd: n
#
# Zimbra configuration
################################################################################
hostname: "localhost"
domain: "localdomain"
zmpasswd: "!23Change"
zmnetwork: "192.168.200.0/8"
timezone: UTC
#hosts_lines:
# - "198.162.1.3 {{ hostname }}.{{ domain }} {{ hostname }}"
#
# Zimbra configuration
################################################################################
zimbra_version: 8.8.15

View File

@ -1,16 +0,0 @@
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
y

View File

@ -6,6 +6,14 @@ pyzor_timeout 20
# Razor's Config - Change only if you know what are you doing # Razor's Config - Change only if you know what are you doing
use_razor2 1 use_razor2 1
# Enabling Bayesian mail filtering
use_bayes 1
score BAYES_90 4.300
score BAYES_80 3.500
score BAYES_60 3.000
score BAYES_50 2.500
score BAYES_00 -0.500
#SpamAssassin's Scores - Change THIS file and not salocal.cf #SpamAssassin's Scores - Change THIS file and not salocal.cf
score ALL_TRUSTED -4.000 score ALL_TRUSTED -4.000
@ -61,3 +69,4 @@ score T_URL_SHORTENER 0.400
score BAD_ENC_HEADER 0.400 score BAD_ENC_HEADER 0.400
score T_UNKNOWN_ORIGIN 0.700 score T_UNKNOWN_ORIGIN 0.700
score RP_MATCHES_RCVD -0.000 score RP_MATCHES_RCVD -0.000
score

View File

@ -1,2 +0,0 @@
---
# handlers file for zimbra

View File

@ -1,21 +1,21 @@
galaxy_info: galaxy_info:
author: Lucas Costa Beyeler author: Lucas Costa Beyeler
description: Ansible role to install and configure Zimbra Collaboration Open Source Edition in a monoserver environment description: Ansible role to install and configure Zimbra Collaboration Open Source Edition
company: 4Linux - Open Software Specialists company: Beyeler
license: GPLv3 license: GPLv3
min_ansible_version: 2.2 min_ansible_version: 2.9.6
github_branch: master github_branch: master
platforms: platforms:
- name: Ubuntu - name: Ubuntu
versions: versions:
- trusty - trusty
- xenial - xenial
- bionic
- name: EL - name: EL
versions: versions:
- 6 - 6
- 7 - 7
- 8
galaxy_tags: galaxy_tags:
- zimbra - zimbra
- monoserver - community
dependencies:
- { role: lucascbeyeler.commons }

View File

@ -1,8 +0,0 @@
# Here we will download some packages that are needed to be present during the
# Zimbra install
- name: Download all the Zimbra's dependency for CentOS/RHEL System
apt: pkg='{{ dependency }}' state=installed
- name: Ensure Postfix/dnsmasq not installed
apt: pkg='{{ absent }}' state=absent

View File

@ -1,8 +0,0 @@
# Here we will download some packages that are needed to be present during the
# Zimbra install
- name: Download all the Zimbra's dependency for CentOS/RHEL System
yum: pkg='{{ dependency }}' state=installed
- name: Ensure Postfix not installed
yum: pkg='{{ absent }}' state=absent

View File

@ -0,0 +1,51 @@
---
#
# Configuring Zimbra OSE
################################################################################
- name: Enabling HTTP to HTTPS redirect
command: ./zmprov ms "{{ hostname }}"."{{ domain }}" zimbraReverseProxyMailMode redirect
args:
chdir: /opt/zimbra/bin/
- name: Setting LMTP Host Lookup from DNS to Native
command: ./zmprov mcf zimbraMtaLmtpHostLookup native
args:
chdir: /opt/zimbra/bin/
#
# Configuring RBLs
################################################################################
- name: Importing zen.spamhaus.org RBL
command: ./zmprov ms "{{hostname}}"."{{domain}}" +zimbraMtaRestriction 'reject_rbl_client zen.spamhaus.org'
args:
chdir: /opt/zimbra/bin/
become: true
become_user: zimbra
- name: Importing sbl.spamhaus.org RBL
command: ./zmprov ms "{{hostname}}"."{{domain}}" +zimbraMtaRestriction 'reject_rbl_client sbl.spamhaus.org'
args:
chdir: /opt/zimbra/bin/
become: true
become_user: zimbra
- name: Importing dsn.rfc-ignorant.org RBL
command: ./zmprov ms "{{hostname}}"."{{domain}}" +zimbraMtaRestriction 'reject_rbl_client dsn.rfc-ignorant.org'
args:
chdir: /opt/zimbra/bin/
become: true
become_user: zimbra
- name: Importing bl.spamcop.net RBL
command: ./zmprov ms "{{hostname}}"."{{domain}}" +zimbraMtaRestriction 'reject_rbl_client bl.spamcop.net'
args:
chdir: /opt/zimbra/bin/
become: true
become_user: zimbra
- name: Importing dnsbl.sorbs.net RBL
command: ./zmprov ms "{{hostname}}"."{{domain}}" +zimbraMtaRestriction 'reject_rbl_client dnsbl.sorbs.net'
args:
chdir: /opt/zimbra/bin/
become: true
become_user: zimbra

93
tasks/configure/mta.yml Normal file
View File

@ -0,0 +1,93 @@
---
#
# Configuring SpamAssassin
################################################################################
- name: Downloading and Installing Kevin McGrail's Custom Rules
get_url:
url: https://www.pccc.com/downloads/SpamAssassin/contrib/KAM.cf
dest: /opt/zimbra/data/spamassassin/localrules/sakam.cf
mode: 0440
owner: zimbra
group: zimbra
- name: Configuring sauser.cf With new Scores
copy:
src: sauser.cf
dest: /opt/zimbra/data/spamassassin/localrules/sauser.cf
owner: root
group: root
mode: 0440
- name: Enabling SpamAssassin Auto Update
command: ./zmlocalconfig -e antispam_enable_rule_updates=true
args:
chdir: /opt/zimbra/bin/
become: true
become_user: zimbra
- name: Enabling Amavis to restart when the rules are update
command: ./zmlocalconfig -e antispam_enable_restarts=true
args:
chdir: /opt/zimbra/bin/
become: true
become_user: zimbra
- name: Enabling SpamAssassin rule compilation
command: ./zmlocalconfig -e antispam_enable_rule_compilation=true
args:
chdir: /opt/zimbra/bin/
become: true
become_user: zimbra
#
# Configuring Pyzor
################################################################################
- name: Downloading and Configuring Pyzor's Anti-spam Base
command: pyzor --homedir /opt/zimbra/data/amavisd/.pyzor discover
become: true
become_user: zimbra
#
# Configuring Razor
################################################################################
- name: Creating Razor's Anti-spam Base
command: razor-admin -home=/opt/zimbra/data/amavisd/.razor -create
become: true
become_user: zimbra
- name: Downloading Razor's Anti-spam Base
command: razor-admin -home=/opt/zimbra/data/amavisd/.razor -discover
become: true
become_user: zimbra
- name: Registering your Razor installation
command: 'razor-admin -home=/opt/zimbra/data/amavisd/.razor -register'
become: true
become_user: zimbra
#
# Configuring PolicyD
################################################################################
- name: Configuring PolicyD Database
copy:
src: 'config.php'
dest: /opt/zimbra/common/share/webui/includes/config.php
owner: root
group: root
mode: 0644
when: zimbra_policyd == 'y'
- name: Configuring PolicyD Web Interface
file:
src: /opt/zimbra/common/share/webui
dest: /opt/zimbra/data/httpd/htdocs/webui
state: link
when: zimbra_policyd == 'y'
- name: Enable PolicyD Web Interface
lineinfile:
dest: /opt/zimbra/conf/httpd.conf
regexp: "^ DirectoryIndex index.html index.html.var"
line: " DirectoryIndex index.html index.html.var index.php"
state: present
when: zimbra_policyd == 'y'

View File

@ -0,0 +1,9 @@
#
# Configuring Zimbra OSE
################################################################################
- name: Enabling Zimbra's admin through Proxy Server
command: ./zmproxyconfig -e -w -C -H "{{ hostname }}"."{{ domain }}"
args:
chdir: /opt/zimbra/libexec/
become: yes
become_user: zimbra

View File

@ -21,21 +21,21 @@
mode: 0644 mode: 0644
- name: Configure the Zimbra Server to find the new logos - name: Configure the Zimbra Server to find the new logos
shell: './zmprov md {{ domain }} zimbraSkinLogoURL https://{{ hostname }}.{{ domain }}' command: './zmprov md {{ domain }} zimbraSkinLogoURL https://{{ hostname }}.{{ domain }}'
args: args:
chdir: /opt/zimbra/bin chdir: /opt/zimbra/bin
become: true become: true
become_user: zimbra become_user: zimbra
- name: Configure the path for the login logo file - name: Configure the path for the login logo file
shell: './zmprov md {{ domain }} zimbraSkinLogoLoginBanner /img/logoLoginBanner.png' command: './zmprov md {{ domain }} zimbraSkinLogoLoginBanner /img/logoLoginBanner.png'
args: args:
chdir: /opt/zimbra/bin chdir: /opt/zimbra/bin
become: true become: true
become_user: zimbra become_user: zimbra
- name: Configure the path for the webmail logo file - name: Configure the path for the webmail logo file
shell: './zmprov md {{ domain }} zimbraSkinLogoAppBanner /img/logoAppBanner.png' command: './zmprov md {{ domain }} zimbraSkinLogoAppBanner /img/logoAppBanner.png'
args: args:
chdir: /opt/zimbra/bin chdir: /opt/zimbra/bin
become: true become: true

View File

@ -0,0 +1,20 @@
---
#
# Installing dependencies and removing other smtp servers
################################################################################
- name: Ensure Sendmail and Postfix is not installed
package:
name: "{{ absent }}"
state: absent
- name: Ensure Pyzor and Razor is installed (CentOS/RedHat)
yum:
name: "{{ centos }}"
state: present
when: ansible_os_family == "RedHat"
- name: Ensure Pyzor and Razor is installed (Ubuntu)
apt:
name: "{{ ubuntu }}"
state: present
when: ansible_os_family == "Debian"

View File

@ -0,0 +1,8 @@
---
#
# Install PolicyD
################################################################################
- name: Installing PolicyD Service
command: ./zmprov ms "{{ hostname }}"."{{ domain }}" +zimbraServiceInstalled cbpolicyd +zimbraServiceEnabled cbpolicyd
args:
chdir: /opt/zimbra/bin/

50
tasks/install/zimbra.yml Normal file
View File

@ -0,0 +1,50 @@
---
#
# Download and install Zimbra OSE
################################################################################
- name: Update /etc/hosts
lineinfile:
path: /etc/hosts
line: "{{ item }}"
state: present
with_items: "{{ hosts_lines }}"
when: hosts_lines is defined
- name: Download and unpacking Zimbra OSE
unarchive:
validate_certs: no
src: '{{ zmurl }}{{ zmpkg }}.tgz'
dest: /usr/local/src/
copy: no
- name: Create the folder to upload the scripts
file:
path: /tmp/zcs
state: directory
- name: Uploading keystroke file
template:
src: 'installZimbra-keystrokes'
dest: /tmp/zcs/installZimbra-keystrokes
owner: root
group: root
mode: 0644
- name: Uploading installer configuration file
template:
src: 'installZimbraScript.j2'
dest: /tmp/zcs/installZimbraScript
owner: root
group: root
mode: 0644
- name: Installing Zimbra OSE
shell: ./install.sh -s < /tmp/zcs/installZimbra-keystrokes
args:
chdir: '/usr/local/src/{{ zmpkg }}/'
- name: Configuring Zimbra OSE's services for use
command: ./zmsetup.pl -c /tmp/zcs/installZimbraScript
args:
chdir: /opt/zimbra/libexec/

View File

@ -1,26 +1,48 @@
# This is the main file for the role. ---
# #
# Loading variables # Validations before run the playbook
################################### ################################################################################
- include_vars: file='{{ ansible_os_family }}/packages.yml' - name: Checking if there is an Zimbra OSE install already
- include: 'vars/zimbra-{{ ansible_os_family }}.yml' command: getent passwd zimbra
register: getent_passwd
#
# Starting the install
###################################
- include: '{{ ansible_os_family }}/packages.yml'
- include: nodistro/install-zimbra.yml
- include: nodistro/install-spamassassin.yml
- include: nodistro/modify-logo.yml
when: zmlogologin is defined and zmlogoapp is defined
- include: nodistro/policyd.yml
#
# Rebooting the Machine
###################################
- name: Rebooting the machine to apply the changes
shell: sleep 2 && shutdown -r now "Ansible updates triggered"
async: 1
poll: 0
ignore_errors: true ignore_errors: true
#
# Installation process
################################################################################
- import_tasks: 'vars/{{zimbra_version}}.yml'
when: getent_passwd.rc == 2
- import_tasks: 'install/dependencies.yml'
when: getent_passwd.rc == 2
- import_tasks: 'install/zimbra.yml'
when: getent_passwd.rc == 2
- import_tasks: 'install/policyd.yml'
when: zimbra_policyd == 'y'
#
# Configuration process
################################################################################
- import_tasks: 'configure/proxy.yml'
when: zimbra_proxy == 'y'
- import_tasks: 'configure/mailbox.yml'
when: zimbra_store == 'y'
- import_tasks: 'configure/mta.yml'
when: zimbra_mta == 'y'
#
# Extras configuration process
################################################################################
- import_tasks: 'extras/modify-logo.yml'
when: zmlogologin is defined and zmlogoapp is defined
#
# Restarting Zimbra
################################################################################
- name: 'Reloading Zimbra OSE Services'
shell: source /opt/zimbra/.bashrc && ./zmcontrol restart
args:
executable: /bin/bash
chdir: '/opt/zimbra/bin/'
become: yes
become_user: zimbra
retries: 3

View File

@ -1,87 +0,0 @@
# Here we will download and install the Zimbra Server for first use. This
# playbook was made in a way to be used the same code for ever distro.
# PLEASE - If you made a change here, remember to do in a way that every distro
# can use this change. Otherwise, please use the folder RedHat/Debian.
#
# Downloading packages
###################################
- name: Downloading and Installing Kevin McGrail's Custom Rules
get_url:
url: https://www.pccc.com/downloads/SpamAssassin/contrib/KAM.cf
dest: /opt/zimbra/data/spamassassin/localrules/sakam.cf
mode: 0440
owner: zimbra
group: zimbra
- name: Downloading and Configuring Pyzor's Anti-spam Base
shell: pyzor --homedir /opt/zimbra/data/amavisd/.pyzor discover
become: true
become_user: zimbra
- name: Creating Razor's Anti-spam Base
shell: razor-admin -home=/opt/zimbra/data/amavisd/.razor -create
become: true
become_user: zimbra
- name: Downloading Razor's Anti-spam Base
shell: razor-admin -home=/opt/zimbra/data/amavisd/.razor -discover
become: true
become_user: zimbra
#
# Registering Razor Install
###################################
- name: Registering your Razor installation - DEFAULT
shell: 'razor-admin -home=/opt/zimbra/data/amavisd/.razor -register'
become: true
become_user: zimbra
#
# Configuring the Spamassassin
###################################
- name: Configuring sauser.cf With new Scores
copy:
src: sauser.cf
dest: /opt/zimbra/data/spamassassin/localrules/sauser.cf
owner: root
group: root
mode: 0440
#
# Installing the RBL's
###################################
- name: Importing zen.spamhaus.org RBL
shell: ./zmprov ms {{hostname}}.{{domain}} +zimbraMtaRestriction 'reject_rbl_client zen.spamhaus.org'
args:
chdir: /opt/zimbra/bin/
become: true
become_user: zimbra
- name: Importing sbl.spamhaus.org RBL
shell: ./zmprov ms {{hostname}}.{{domain}} +zimbraMtaRestriction 'reject_rbl_client sbl.spamhaus.org'
args:
chdir: /opt/zimbra/bin/
become: true
become_user: zimbra
- name: Importing dsn.rfc-ignorant.org RBL
shell: ./zmprov ms {{hostname}}.{{domain}} +zimbraMtaRestriction 'reject_rbl_client dsn.rfc-ignorant.org'
args:
chdir: /opt/zimbra/bin/
become: true
become_user: zimbra
- name: Importing bl.spamcop.net RBL
shell: ./zmprov ms {{hostname}}.{{domain}} +zimbraMtaRestriction 'reject_rbl_client bl.spamcop.net'
args:
chdir: /opt/zimbra/bin/
become: true
become_user: zimbra
- name: Importing dnsbl.sorbs.net RBL
shell: ./zmprov ms {{hostname}}.{{domain}} +zimbraMtaRestriction 'reject_rbl_client dnsbl.sorbs.net'
args:
chdir: /opt/zimbra/bin/
become: true
become_user: zimbra

View File

@ -1,59 +0,0 @@
# Here we will download and install the Zimbra Server for first use. This
# playbook was made in a way to be used the same code for ever distro.
# PLEASE - If you made a change here, remember to do in a way that every distro
# can use this change. Otherwise, please use the folder RedHat/Debian.
- name: Download and Unpacking Zimbra Collaboration - Open Source Edition
unarchive:
validate_certs: no
src: '{{ zmurl }}{{ zmpkg }}.tgz'
dest: /usr/local/src/
copy: no
- name: Create the Folder Structure for the Installer (TEMP)
file:
path: /tmp/zcs
state: directory
- name: Uploading Keystroke File (TEMP)
copy:
src: 'installZimbra-keystrokes'
dest: /tmp/zcs/installZimbra-keystrokes
owner: root
group: root
mode: 0644
- name: Uploading Installer Configuration File (TEMP)
template:
src: 'installZimbraScript.j2'
dest: /tmp/zcs/installZimbraScript
owner: root
group: root
mode: 0644
- name: Installing Zimbra Collaboration's Packages
shell: ./install.sh -s < /tmp/zcs/installZimbra-keystrokes
args:
chdir: '/usr/local/src/{{ zmpkg }}/'
- name: Configuring the Server for First Use - This will take a while...
shell: ./zmsetup.pl -c /tmp/zcs/installZimbraScript
args:
chdir: /opt/zimbra/libexec/
- name: Setting LMTP Host Lookup from DNS to Native
shell: ./zmprov mcf zimbraMtaLmtpHostLookup native
args:
chdir: /opt/zimbra/bin/
- name: Setting Admin via Proxy Server
shell: ./zmproxyconfig -e -w -C -H {{ hostname }}.{{ domain }}
args:
chdir: /opt/zimbra/libexec/
become: yes
become_user: zimbra
- name: Redirecting HTTP to HTTPS
shell: ./zmprov ms {{ hostname }}.{{ domain }} zimbraReverseProxyMailMode redirect
args:
chdir: /opt/zimbra/bin/

View File

@ -1,29 +0,0 @@
# Playbook file to install and activate the PolicyD service in the Open Source Edition.
# PLEASE - If you made a change here, remember to do in a way that every distro
# can use this change. Otherwise, please use the folder RedHat/Debian.
- name: Installing and Enabling the PolicyD Service
shell: ./zmprov ms {{ hostname }}.{{ domain }} +zimbraServiceInstalled cbpolicyd +zimbraServiceEnabled cbpolicyd
args:
chdir: /opt/zimbra/bin/
- name: Configuring PolicyD Database
copy:
src: 'config.php'
dest: /opt/zimbra/common/share/webui/includes/config.php
owner: root
group: root
mode: 0644
- name: Configuring PolicyD Web Interface
file:
src: /opt/zimbra/common/share/webui
dest: /opt/zimbra/data/httpd/htdocs/webui
state: link
- name: Enable PolicyD Web Interface
lineinfile:
dest: /opt/zimbra/conf/httpd.conf
regexp: "^ DirectoryIndex index.html index.html.var"
line: " DirectoryIndex index.html index.html.var index.php"
state: present

34
tasks/vars/8.8.15.yml Normal file
View File

@ -0,0 +1,34 @@
---
#
# Setting variables
################################################################################
- name: Loading the address to the most recent release of Zimbra OSE (8.8.15)
set_fact: zmurl=https://files.zimbra.com/downloads/8.8.15_GA/
- name: Check if your distro is Ubuntu Server 16.04 LTS
set_fact: zmpkg=zcs-8.8.15_GA_3869.UBUNTU16_64.20190918004220
when: ansible_distribution_major_version|int >= 16 and ansible_distribution_major_version|int <= 17
- name: Check if your distro is Ubuntu Server 18.04 LTS
set_fact: zmpkg=zcs-8.8.15_GA_3869.UBUNTU18_64.20190918004220
when: ansible_distribution_major_version|int >= 18 and ansible_distribution_major_version|int <= 19
- name: Check if your distro is Ubuntu Server 20.04 LTS
set_fact: zmpkg=zcs-8.8.15_GA_4179.UBUNTU20_64.20211118033954
when: ansible_distribution_major_version|int >= 20
- name: Check if your distro is Ubuntu Server 14.04 LTS
set_fact: zmpkg=zcs-8.8.15_GA_3869.UBUNTU14_64.20190918004220
when: ansible_distribution_major_version|int >= 14 and ansible_distribution_major_version|int <= 15
- name: Check if your distro is Red Hat Enterprise Linux or CentOS (Major 6)
set_fact: zmpkg=zcs-8.8.15_GA_3869.RHEL6_64.20190918004220
when: ansible_distribution_major_version == "6"
- name: Check if your distro is Red Hat Enterprise Linux or CentOS (Major 7)
set_fact: zmpkg=zcs-8.8.15_GA_3869.RHEL7_64.20190918004220
when: ansible_distribution_major_version == "7"
- name: Check if your distro is Red Hat Enterprise Linux or CentOS (Major 8)
set_fact: zmpkg=zcs-8.8.15_GA_3953.RHEL8_64.20200629025823
when: ansible_distribution_major_version == "8"

View File

@ -1,13 +0,0 @@
# This is where the Ansible will check which S.O. you are using and select the
# correct package to install
- name: Set the Playbook to Install Zimbra Collaboration 8.7 - Open Source Edition
set_fact: zmurl=https://files.zimbra.com/downloads/8.7.11_GA/
- name: Check if your distro is Ubuntu Server 16.04 LTS
set_fact: zmpkg=zcs-8.7.11_GA_1854.UBUNTU14_64.20170531151956
when: ansible_distribution_major_version|int >= 16
- name: Check if your distro is Ubuntu Server 14.04 LTS
set_fact: zmpkg=zcs-8.7.11_GA_1854.UBUNTU14_64.20170531151956
when: ansible_distribution_major_version|int >= 14 and ansible_distribution_major_version|int <= 15

View File

@ -1,13 +0,0 @@
# This is where the Ansible will check which S.O. you are using and select the
# correct package to install
- name: Set the Playbook to Install Zimbra Collaboration 8.7 - Open Source Edition
set_fact: zmurl=https://files.zimbra.com/downloads/8.7.11_GA/
- name: Check if your distro is Red Hat Enterprise Linux or CentOS (Major 6)
set_fact: zmpkg=zcs-8.7.11_GA_1854.RHEL6_64.20170531151956
when: ansible_distribution_major_version == "6"
- name: Check if your distro is Red Hat Enterprise Linux or CentOS (Major 7)
set_fact: zmpkg=zcs-8.7.11_GA_1854.RHEL7_64.20170531151956
when: ansible_distribution_major_version == "7"

View File

@ -1,3 +0,0 @@
::1 localhost.localdomain localhost
127.0.0.1 localhost.localdomain localhost
127.0.0.1 {{ hostname }}.{{ domain }} {{ hostname }}

View File

@ -0,0 +1,16 @@
y
y
{{ zimbra_ldap }}
{{ zimbra_logger }}
{{ zimbra_mta }}
{{ zimbra_dnscache }}
{{ zimbra_snmp }}
{{ zimbra_store }}
{{ zimbra_apache }}
{{ zimbra_spell }}
{{ zimbra_memcached }}
{{ zimbra_proxy }}
{{ zimbra_chat }}
{{ zimbra_drive }}
{{ zimbra_imapd }}
y

View File

@ -70,7 +70,7 @@ mailboxd_directory="/opt/zimbra/mailboxd"
mailboxd_keystore="/opt/zimbra/mailboxd/etc/keystore" mailboxd_keystore="/opt/zimbra/mailboxd/etc/keystore"
mailboxd_keystore_password="{{ zmpasswd }}" mailboxd_keystore_password="{{ zmpasswd }}"
mailboxd_server="jetty" mailboxd_server="jetty"
mailboxd_truststore="/opt/zimbra/common/lib/jvm/java/jre/lib/security/cacerts" mailboxd_truststore="/opt/zimbra/common/etc/java/cacerts"
mailboxd_truststore_password="changeit" mailboxd_truststore_password="changeit"
postfix_mail_owner="postfix" postfix_mail_owner="postfix"
postfix_setgid_group="postdrop" postfix_setgid_group="postdrop"

View File

@ -3,7 +3,7 @@
remote_user: root remote_user: root
roles: roles:
- role: ansible-zimbra - role: zimbra
hostname: localhost hostname: localhost
domain: localdomain domain: localdomain
zmpasswd: 123change zmpasswd: 123change

View File

@ -1,19 +0,0 @@
# Here you can set the packages name installed by zimbra's role
# Dependency is where you inform the packages Zimbra need to be installed before
# you run the installer
dependency:
- libgmp10
- pax
- sqlite3
- dnsmasq
- wget
- libaio1
- razor
- pyzor
absent:
- postfix
- sendmail
- dnsmasq

View File

@ -1,17 +0,0 @@
# Here you can set the packages name installed by zimbra's role
# Dependency is where you inform the packages Zimbra need to be installed before
# you run the installer
dependency:
- nmap-ncat
- perl-core
- gcc
- openssl-devel
- kernel-devel
- pyzor
- perl-Razor-Agent
absent:
- postfix
- sendmail