Compare commits

..

No commits in common. "master" and "8.7.9" 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
# Install ansible-commons
- ansible-galaxy install lucascbeyeler.baseline
- ansible-galaxy install lucascbeyeler.commons
script:
# 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)
[![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/)
[![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.7.9-blue.svg)](https://www.zimbra.com/downloads/zimbra-collaboration-open-source/)
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
--------------
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
@ -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.
```
ansible-galaxy install -f lucascbeyeler.zimbra
ansible-galaxy install -f lucascbeyeler.ansible-zimbra
```
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;
* 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;
* Proxy Admin;
* HTTP to HTTPS redirect;
* LMTP Host Lookup in Native mode;
* Customize your Zimbra OSE server;
* Chat and ownCloud plugin;
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;
* **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;
* **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
------------
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
----------------
@ -85,9 +72,9 @@ Example Playbook
become: yes
become_method: sudo
roles:
- role: lucascbeyeler.zimbra
hostname: localhost
domain: localdomain
- role: lucascbeyeler.ansible-zimbra
hostname: warudo
domain: hollowbastion.com
timezone: America/Sao_Paulo
zmpasswd: 123change
zmnetwork: 192.168.122.0/24
@ -98,11 +85,9 @@ Example Playbook
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>.
GNU GENERAL PUBLIC LICENSE
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
- 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
---
# defaults file for zimbra

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
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
score ALL_TRUSTED -4.000
@ -69,4 +61,3 @@ score T_URL_SHORTENER 0.400
score BAD_ENC_HEADER 0.400
score T_UNKNOWN_ORIGIN 0.700
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:
author: Lucas Costa Beyeler
description: Ansible role to install and configure Zimbra Collaboration Open Source Edition
company: Beyeler
description: Ansible role to install and configure Zimbra Collaboration Open Source Edition in a monoserver environment
company: 4Linux - Open Software Specialists
license: GPLv3
min_ansible_version: 2.9.6
min_ansible_version: 2.2
github_branch: master
platforms:
- name: Ubuntu
versions:
- trusty
- xenial
- bionic
- name: EL
versions:
- 6
- 7
- 8
galaxy_tags:
- 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 @@
---
#
# 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
# This is the main file for the role.
#
# 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'
# Loading variables
###################################
- include_vars: file='{{ ansible_os_family }}/packages.yml'
- include: 'vars/zimbra-{{ ansible_os_family }}.yml'
#
# 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'
# 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
#
# 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
# 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

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
- 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:
chdir: /opt/zimbra/bin
become: true
become_user: zimbra
- 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:
chdir: /opt/zimbra/bin
become: true
become_user: zimbra
- 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:
chdir: /opt/zimbra/bin
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.9_GA/
- name: Check if your distro is Ubuntu Server 16.04 LTS
set_fact: zmpkg=zcs-8.7.9_GA_1794.UBUNTU16_64.20170505054622
when: ansible_distribution_major_version|int >= 16
- name: Check if your distro is Ubuntu Server 14.04 LTS
set_fact: zmpkg=zcs-8.7.9_GA_1794.UBUNTU14_64.20170505054622
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.9_GA/
- name: Check if your distro is Red Hat Enterprise Linux or CentOS (Major 6)
set_fact: zmpkg=zcs-8.7.9_GA_1794.RHEL6_64.20170505054622
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.9_GA_1794.RHEL7_64.20170505054622
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_password="{{ zmpasswd }}"
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"
postfix_mail_owner="postfix"
postfix_setgid_group="postdrop"

View File

@ -3,7 +3,7 @@
remote_user: root
roles:
- role: zimbra
- role: ansible-zimbra
hostname: localhost
domain: localdomain
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