Scenario Full Redundant#

This scenario features all Carbonio functionalities and its intended use is any infrastructure that requires scalability and redundancy and is ready for High Availability.

The scenario can be deployed either using the Ansible Playbook, or manually, Node by Node. In both cases, make sure you configure the internal network.

Ansible Playbook#

This 11 Nodes scenario can be installed using Ansible: you need to setup a workstation to run Ansible playbooks (please refer to section Prepare the Ansible Environment and following for directions on setting up the workstation), then download the Ansible inventory (see below this paragraph), replace the FQDN and values present in the file according to your planned Carbonio infrastructure (please refer to Section Prepare Inventory). Once edited the inventory, you can Install Carbonio Using Ansible.

Inventory - “Full Redundant” Scenario

Download the inventory

[postgresServers]
srv1.example.com

[masterDirectoryServers]
srv1.example.com

[replicaDirectoryServers]
srv2.example.com

[serviceDiscoverServers]
srv1.example.com
srv2.example.com
srv3.example.com

[dbsConnectorServers]
srv2.example.com
srv3.example.com

[mtaServers]
srv4.example.com

[proxyServers]
srv5.example.com

[proxyServers:vars]
webmailHostname=YourWebmailPublicHostname

[applicationServers]
srv6.example.com

[filesServers]
srv7.example.com
srv8.example.com

[docsServers]
srv9.example.com
srv10.example.com

[taskServers]
srv6.example.com

[previewServers]
srv9.example.com
srv10.example.com

[videoServers]
srv11.example.com public_ip_address=x.y.z.t

[prometheusServers]
srv3.example.com

[syslogServer]
srv1.example.com

Once edited the inventory, you can launch Carbonio installation by issuing from the workstation, the command (as the root user)

# ansible-playbook -u root -i ../../data/carbonio-inventory-fullredundant carbonio-install.yml

Network Configuration#

The following ports must be opened on the external network, i.e., they are required for proper access to Carbonio from the Internet.

Table 5 Opened ports in Scenario “Full Redundant”.#

Public hostname

Ports & Service

Mapping

mail.example.com

  • TCP 80/443 HTTP/S

  • TCP 143/993 IMAP/S

  • TCP 110/995 POP/S

  • TCP 8636 LDAP Addresbook

srv5.example.com

mx.example.com

  • TCP 25/465/587 SMTP/S

srv4.example.com

mail.example.com

  • UDP 20000/40000 Video Streaming

srv11.example.com


Manual Roles Installation#

In case you do not want to install Carbonio on this scenario using Ansible, you can proceed with the manual installation of the various Roles on the Nodes, according to the following guidelines.

Before starting the installation, bear in mind to:

  • Always start with the installation of Mesh and Directory Roles

  • When installing multiple Roles on a Node, the tasks listed in Bootstrap Carbonio* and Join Carbonio Mesh steps can be made only once, after all packages of the Roles have been installed

Node 1

Node Name/FQDN: srv1.example.com

Type of services: Clustered services

Roles installed:

Node 2

Node Name/FQDN: srv2.example.com

Type of services: Clustered services

Roles installed:

Node 3

Node Name/FQDN: srv3.example.com

Type of services: Clustered services

Roles installed:

Node 4

Node Name/FQDN: srv4.example.com

Type of services: MTA

Roles installed:

Node 5

Node Name/FQDN: srv5.example.com

Type of services: Files

Roles installed: Proxy

Node 6

Node Name/FQDN: srv6.example.com

Type of services:Mails, Calendars, Contacts, and Tasks

Roles installed:

Node 7

Node Name/FQDN: srv7.example.com

Type of services:

Roles installed:

Node 8

Node Name/FQDN: srv8.example.com

Type of services: Files

Roles installed:

Node 9

Node Name/FQDN: srv9.example.com

Type of services: Preview and Editing

Roles installed:

Node 10

Node Name/FQDN: srv10.example.com

Type of services: Preview and Editing

Roles installed:

Node 11

Node Name/FQDN: srv11.example.com

Type of services: Video and Meeting

Roles installed: