Compare commits

..

No commits in common. "master" and "8.7.7" have entirely different histories.

31 changed files with 332 additions and 435 deletions

3
.github/FUNDING.yml vendored
View File

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

2
.gitignore vendored
View File

@ -1,2 +0,0 @@
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.baseline - ansible-galaxy install lucascbeyeler.commons
script: script:
# Basic role syntax check # Basic role syntax check

View File

@ -1,25 +1,32 @@
Zimbra Ansible-Zimbra
========= =========
Non-Official ansible role to install and configure Zimbra Collaboration Open Source Edition on Red Hat, CentOS and Ubuntu Server. Ansible role to install and configure Zimbra Collaboration Open Source Edition in a monoserver environment
[![Build Status](https://travis-ci.org/lucascbeyeler/zimbra.svg?branch=master)](https://travis-ci.org/lucascbeyeler/zimbra) [![Build Status](https://travis-ci.org/lucascbeyeler/ansible-zimbra.svg?branch=master)](https://travis-ci.org/lucascbeyeler/ansible-zimbra)
[![Zimbra Version](https://img.shields.io/badge/Zimbra-8.8.15-blue.svg)](https://www.zimbra.com/downloads/zimbra-collaboration-open-source/) [![Zimbra Version](https://img.shields.io/badge/Zimbra-8.7.6-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.9.6 or high. * [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
* 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
-------------- --------------
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-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.zimbra ansible-galaxy install lucascbeyeler.ansible-zimbra
``` ```
Update Update
@ -27,20 +34,19 @@ 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.zimbra ansible-galaxy install -f lucascbeyeler.ansible-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;
* Customize your Zimbra OSE server; * Chat and ownCloud plugin;
Role Variables Role Variables
@ -53,30 +59,11 @@ 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.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. 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.
Example Playbook Example Playbook
---------------- ----------------
@ -85,9 +72,9 @@ Example Playbook
become: yes become: yes
become_method: sudo become_method: sudo
roles: roles:
- role: lucascbeyeler.zimbra - role: lucascbeyeler.ansible-zimbra
hostname: localhost hostname: warudo
domain: localdomain domain: hollowbastion.com
timezone: America/Sao_Paulo timezone: America/Sao_Paulo
zmpasswd: 123change zmpasswd: 123change
zmnetwork: 192.168.122.0/24 zmnetwork: 192.168.122.0/24
@ -98,11 +85,9 @@ Example Playbook
License License
------- -------
[![GNU GPL v3.0](http://www.gnu.org/graphics/gplv3-127x51.png)](http://www.gnu.org/licenses/gpl.html) GNU GENERAL PUBLIC LICENSE
View official GNU site <http://www.gnu.org/licenses/gpl.html>.
Author Information Author Information
------------------ ------------------
* [Lucas Costa Beyeler](https://github.com/lucascbeyeler) - lucas.costab@outlook.com https://github.com/lucascbeyeler

View File

@ -1,47 +1,2 @@
absent: ---
- postfix # defaults file for zimbra
- 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

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

View File

@ -6,14 +6,6 @@ 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
@ -69,4 +61,3 @@ 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

2
handlers/main.yml Normal file
View File

@ -0,0 +1,2 @@
---
# 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 description: Ansible role to install and configure Zimbra Collaboration Open Source Edition in a monoserver environment
company: Beyeler company: 4Linux - Open Software Specialists
license: GPLv3 license: GPLv3
min_ansible_version: 2.9.6 min_ansible_version: 2.2
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
- community - monoserver
dependencies:
- { role: lucascbeyeler.commons }

View File

@ -0,0 +1,8 @@
# 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

@ -0,0 +1,8 @@
# 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

@ -1,51 +0,0 @@
---
#
# 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

View File

@ -1,93 +0,0 @@
---
#
# 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

@ -1,9 +0,0 @@
#
# 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

@ -1,20 +0,0 @@
---
#
# 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

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

View File

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

View File

@ -0,0 +1,87 @@
# 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

@ -0,0 +1,59 @@
# 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

@ -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
command: './zmprov md {{ domain }} zimbraSkinLogoURL https://{{ hostname }}.{{ domain }}' shell: './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
command: './zmprov md {{ domain }} zimbraSkinLogoLoginBanner /img/logoLoginBanner.png' shell: './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
command: './zmprov md {{ domain }} zimbraSkinLogoAppBanner /img/logoAppBanner.png' shell: './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,29 @@
# 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

View File

@ -1,34 +0,0 @@
---
#
# 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

@ -0,0 +1,13 @@
# 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.7_GA/
- name: Check if your distro is Ubuntu Server 16.04 LTS
set_fact: zmpkg=zcs-8.7.7_GA_1787.UBUNTU16_64.20170410133400
when: ansible_distribution_major_version|int >= 16
- name: Check if your distro is Ubuntu Server 14.04 LTS
set_fact: zmpkg=zcs-8.7.7_GA_1787.UBUNTU14_64.20170410133400
when: ansible_distribution_major_version|int >= 14 and ansible_distribution_major_version|int <= 15

View File

@ -0,0 +1,13 @@
# 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.7_GA/
- name: Check if your distro is Red Hat Enterprise Linux or CentOS (Major 6)
set_fact: zmpkg=zcs-8.7.7_GA_1787.RHEL6_64.20170410133400
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.7_GA_1787.RHEL7_64.20170410133400
when: ansible_distribution_major_version == "7"

3
templates/hosts.j2 Normal file
View File

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

View File

@ -1,16 +0,0 @@
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/etc/java/cacerts" mailboxd_truststore="/opt/zimbra/common/lib/jvm/java/jre/lib/security/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: zimbra - role: ansible-zimbra
hostname: localhost hostname: localhost
domain: localdomain domain: localdomain
zmpasswd: 123change zmpasswd: 123change

19
vars/Debian/packages.yml Normal file
View File

@ -0,0 +1,19 @@
# 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

17
vars/RedHat/packages.yml Normal file
View File

@ -0,0 +1,17 @@
# 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