Change the Carbonio CE Hostname#
This guide helps you in changing the hostnames of a Carbonio CE infrastructure, whether a Single-Server or Multi Node. The procedure may become quite long in the case of a Multi-Node, please go through the whole section before proceeding with the actual procedures. Indeed, depending on the number and type of Nodes that you need to rename, different procedure should be applied to each Node.
Requirements & Limitations#
You need to take into account the following requirements during the procedure.
Ensure you have administrative access to each Node.
Update the A, MX, and PTR DNS records to reflect the new hostname before starting.
Verify the new hostname is resolvable using nslookup or dig
During the hostname change, every node must be resolvable by both the old and the new hostname
All commands in the procedures must be executed as the
root
user unless stated differentlyAlways start the procedure from the Node which installs the Mesh & Directory Component
The procedures are valid only for a change of hostname, not for a change in the domain name (i.e., of the FQDN)
Infrastructure Examples#
To cover most use cases, we take into account the following scenarios on which we apply the procedure. All other cases can be traced back to either of them. In the Multi-Node setups, except for the Node featuring the Mesh & Directory Component (and the Directory Replica, if present), it is not relevant which Components are installed on each Node.
This is a Single-Server, Single Node setup. Simply refer to Section Change Hostname to Mesh & Directory Node below.
Node 1 is the Directory Server with hostname
srv1.example.com
Nodes 2 and 3 have hostnames
srv2.example.com
andsrv3.example.com
, respectively.
In this setup, we change name to Node 1 only, which will be
called node1.example.com
. You need to execute procedure
Change Hostname to Mesh & Directory Node on Node 1 and procedure
Nodes Keeping Their Hostname on Nodes 2 and 3.
Node 1 is the Directory Server with hostname
srv1.example.com
Nodes 2, 3, 4, and 5 have hostnames
srv2.example.com
,srv3.example.com
,srv4.example.com
, andsrv5.example.com
, respectively.
In this setup, we change name to Node 1, Node 2, and Node
5, which will be called node1.example.com
,
node2.example.com
, and node5.example.com
, respectively. You
need to execute procedure Change Hostname to Mesh & Directory Node on Node 1, procedure
Nodes Keeping Their Hostname on Nodes 3 and 4, and procedure
Change Hostname of Other Nodes on Nodes 2 and 5.
Change Hostname to Mesh & Directory Node#
Warning
Remember to start the procedure if and only if you have satisfied the Requirements & Limitations.
This procedure must be used on the Node featuring the Mesh & Directory Component only.
Stop Carbonio CE Services
To stop all Carbonio CE services, execute command
As the zextras
user user, execute
zextras$ zmcontrol status
Hint
On RHEL 9, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).
As the zextras
user user, execute
zextras$ zmcontrol status
Hint
On RHEL 9, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).
Change the Hostname
Update the system hostname:
# hostnamectl set-hostname node1.example.com
Verify that file /etc/hostname
is up to date:
# cat /etc/hostname
node1.example.com
Update file /etc/hosts
to map the new hostname to the Node
IP:
# nano /etc/hosts
127.0.0.1 localhost
192.168.1.10 node1.example.com node1
Update Carbonio CE Configuration
Run the following command to update Carbonio CE interanal setting with the new hostname
# su - zextras -c "/opt/zextras/libexec/zmsetservername -n node1.example.com"
The output will be similar to:
Getting local config zimbra_server_hostname=srv1.example.com
Getting local config zimbra_ldap_userdn=uid=zimbra,cn=admins,cn=zimbra
Getting local config zimbra_ldap_password=jZl2hcK3
Getting local config ldap_is_master=true
Getting local config ldap_url=ldap://srv1.example.com:389
Getting local config ldap_master_url=ldap://srv1.example.com:389
Getting local config ldap_starttls_supported=0
Starting ldap...done.
Renaming srv1.example.com to node1.example.com
Shutting down zimbra...done.
Setting local config ldap_master_url=ldap://node1.example.com:389
Setting local config ldap_url=ldap://node1.example.com:389
Getting local config ldap_host=srv1.example.com
Setting local config ldap_host=node1.example.com
Getting local config av_notify_user=zextras@example.com
Getting local config av_notify_domain=example.com
Getting local config smtp_source=
Getting local config smtp_destination=
Setting local config zimbra_server_hostname=node1.example.com
Starting ldap...done.
Searching for ldap server entry...done.
Renaming cn=srv1.example.com,cn=servers,cn=zimbra...done.
Updating zimbraServiceHostname for cn=node1.example.com,cn=servers,cn=zimbra...done.
Updating zimbraPublicServiceHostname for cn=config,cn=zimbra...done.
Updating zimbraMailHost for uid=zextras,ou=people,dc=example,dc=com...done.
Updating zimbraMailHost for uid=spam.sdt2ak3pl,ou=people,dc=example,dc=com...done.
Updating zimbraMailHost for uid=ham.q_otnlxbi,ou=people,dc=example,dc=com...done.
Updating zimbraMailHost for uid=virus-quarantine.doj_qdcw,ou=people,dc=example,dc=com...done.
Updating zimbraMailHost for uid=galsync.eresranlan,ou=people,dc=example,dc=com...done.
Updating zimbraMailTransport for uid=zextras,ou=people,dc=example,dc=com...done.
Updating zimbraMailTransport for uid=spam.sdt2ak3pl,ou=people,dc=example,dc=com...done.
Updating zimbraMailTransport for uid=ham.q_otnlxbi,ou=people,dc=example,dc=com...done.
Updating zimbraMailTransport for uid=virus-quarantine.doj_qdcw,ou=people,dc=example,dc=com...done.
Updating zimbraMailTransport for uid=galsync.eresranlan,ou=people,dc=example,dc=com...done.
Services:
Getting local config ldap_port=389
Reinitializing the mta config...done.
Update Carbonio Mesh
After the hostname has been changed in Carbonio CE configuration, we need to notify Carbonio Mesh of the hostname change.
# sed -i 's/srv1.example.com/node1.example.com/g' /etc/zextras/service-discover/main.json
# systemctl restart service-discover
Verify SSL Certificates
If your SSL certificates are hostname-specific, you need to
Reissue SSL certificates for the new hostname
Deploy the new certificates
Start Carbonio CE Services
To start all Carbonio CE services, execute command
As the zextras
user user, execute
zextras$ zmcontrol start
Hint
On Ubuntu 24.04, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).
As the zextras
user user, execute
zextras$ zmcontrol start
Hint
On RHEL 9, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).
Verify the new configuration
At this point the Node configurations have all been modified with the new hostname. These tasks help you understand if everything operated correctly.
-
Check Carbonio status:
As the
zextras
user user, executezextras$ zmcontrol status
Hint
On Ubuntu 24.04, as the
root
user execute the new systemd commands that replace the zmcontrol command (see the dedicated box).As the
zextras
user user, executezextras$ zmcontrol status
Hint
On RHEL 9, as the
root
user execute the new systemd commands that replace the zmcontrol command (see the dedicated box). Verify the e-mail flow by sending test emails
If the Node features also the Proxy Component, check on the Carbonio Admin Panel on port 6071 (see Access to the Web Interface) that the new hostname is reported correctly
Change Hostname of Other Nodes#
This procedure applies to all nodes that do not feature the Mesh & Directory Component, that is, Node 1 in Scenario B and Nodes 1, 2, and 5 in Scenario C.
Configure new Directory Server hostname
Make sure all Carbonio CE services are running
As the zextras
user user, execute
zextras$ zmcontrol status
Hint
On Ubuntu 24.04, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).
As the zextras
user user, execute
zextras$ zmcontrol status
Hint
On RHEL 9, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).
Verify how many references to the old Mesh & Directory Node are in the configuration.
zextras$ zmlocalconfig -s|grep srv1.example.com
Configure the Node to point to the new Mesh & Directory Node.
zextras$ zmlocalconfig -e ldap_host=srv2.example.com ldap_master_url=node1.example.com ldap_url=ldap://node1.example.com
Restart the services
As the zextras
user user, execute
zextras$ zmcontrol restart
Hint
On RHEL 9, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).
As the zextras
user user, execute
zextras$ zmcontrol restart
Hint
On RHEL 9, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).
Stop Carbonio CE Services
To stop all Carbonio CE services, execute command
As the zextras
user user, execute
zextras$ zmcontrol status
Hint
On RHEL 9, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).
As the zextras
user user, execute
zextras$ zmcontrol status
Hint
On RHEL 9, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).
Change the Hostname
Update the system hostname:
# hostnamectl set-hostname node1.example.com
Verify that file /etc/hostname
is up to date:
# cat /etc/hostname
node1.example.com
Update file /etc/hosts
to map the new hostname to the Node
IP:
# nano /etc/hosts
127.0.0.1 localhost
192.168.1.10 node1.example.com node1
Update Carbonio CE Configuration
Run the following command to update Carbonio CE interanal setting with the new hostname
# su - zextras -c "/opt/zextras/libexec/zmsetservername -n node1.example.com"
The output will be similar to:
Getting local config zimbra_server_hostname=srv1.example.com
Getting local config zimbra_ldap_userdn=uid=zimbra,cn=admins,cn=zimbra
Getting local config zimbra_ldap_password=jZl2hcK3
Getting local config ldap_is_master=true
Getting local config ldap_url=ldap://srv1.example.com:389
Getting local config ldap_master_url=ldap://srv1.example.com:389
Getting local config ldap_starttls_supported=0
Starting ldap...done.
Renaming srv1.example.com to node1.example.com
Shutting down zimbra...done.
Setting local config ldap_master_url=ldap://node1.example.com:389
Setting local config ldap_url=ldap://node1.example.com:389
Getting local config ldap_host=srv1.example.com
Setting local config ldap_host=node1.example.com
Getting local config av_notify_user=zextras@example.com
Getting local config av_notify_domain=example.com
Getting local config smtp_source=
Getting local config smtp_destination=
Setting local config zimbra_server_hostname=node1.example.com
Starting ldap...done.
Searching for ldap server entry...done.
Renaming cn=srv1.example.com,cn=servers,cn=zimbra...done.
Updating zimbraServiceHostname for cn=node1.example.com,cn=servers,cn=zimbra...done.
Updating zimbraPublicServiceHostname for cn=config,cn=zimbra...done.
Updating zimbraMailHost for uid=zextras,ou=people,dc=example,dc=com...done.
Updating zimbraMailHost for uid=spam.sdt2ak3pl,ou=people,dc=example,dc=com...done.
Updating zimbraMailHost for uid=ham.q_otnlxbi,ou=people,dc=example,dc=com...done.
Updating zimbraMailHost for uid=virus-quarantine.doj_qdcw,ou=people,dc=example,dc=com...done.
Updating zimbraMailHost for uid=galsync.eresranlan,ou=people,dc=example,dc=com...done.
Updating zimbraMailTransport for uid=zextras,ou=people,dc=example,dc=com...done.
Updating zimbraMailTransport for uid=spam.sdt2ak3pl,ou=people,dc=example,dc=com...done.
Updating zimbraMailTransport for uid=ham.q_otnlxbi,ou=people,dc=example,dc=com...done.
Updating zimbraMailTransport for uid=virus-quarantine.doj_qdcw,ou=people,dc=example,dc=com...done.
Updating zimbraMailTransport for uid=galsync.eresranlan,ou=people,dc=example,dc=com...done.
Services:
Getting local config ldap_port=389
Reinitializing the mta config...done.
Update Carbonio Mesh
After the hostname has been changed in Carbonio CE configuration, we need to notify Carbonio Mesh of the hostname change.
# sed -i 's/srv1.example.com/node1.example.com/g' /etc/zextras/service-discover/main.json
# systemctl restart service-discover
Verify SSL Certificates
If your SSL certificates are hostname-specific, you need to
Reissue SSL certificates for the new hostname
Deploy the new certificates
Start Carbonio CE Services
To start all Carbonio CE services, execute command
As the zextras
user user, execute
zextras$ zmcontrol start
Hint
On Ubuntu 24.04, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).
As the zextras
user user, execute
zextras$ zmcontrol start
Hint
On RHEL 9, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).
Verify the new configuration
At this point the Node configurations have all been modified with the new hostname. These tasks help you understand if everything operated correctly.
-
Check Carbonio status:
As the
zextras
user user, executezextras$ zmcontrol status
Hint
On Ubuntu 24.04, as the
root
user execute the new systemd commands that replace the zmcontrol command (see the dedicated box).As the
zextras
user user, executezextras$ zmcontrol status
Hint
On RHEL 9, as the
root
user execute the new systemd commands that replace the zmcontrol command (see the dedicated box). Verify the e-mail flow by sending test emails
If the Node features also the Proxy Component, check on the Carbonio Admin Panel on port 6071 (see Access to the Web Interface) that the new hostname is reported correctly
Nodes Keeping Their Hostname#
Even if a Node keeps its hostname (this is the case for Nodes 2 and 3
in scenarios B and Nodes 3 and 4 in C), nonetheless you need to let the
Node know that the Master LDAP server (i.e., the Mesh & Directory
Node) has changed hostname. This can be achieved by executing the
following commands, as the zextras
user.
Configure new Directory Server hostname
Make sure all Carbonio CE services are running
As the zextras
user user, execute
zextras$ zmcontrol status
Hint
On Ubuntu 24.04, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).
As the zextras
user user, execute
zextras$ zmcontrol status
Hint
On RHEL 9, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).
Verify how many references to the old Mesh & Directory Node are in the configuration.
zextras$ zmlocalconfig -s|grep srv1.example.com
Configure the Node to point to the new Mesh & Directory Node.
zextras$ zmlocalconfig -e ldap_host=srv2.example.com ldap_master_url=node1.example.com ldap_url=ldap://node1.example.com
Restart the services
As the zextras
user user, execute
zextras$ zmcontrol restart
Hint
On RHEL 9, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).
As the zextras
user user, execute
zextras$ zmcontrol restart
Hint
On RHEL 9, as the root
user execute the new systemd
commands that replace the zmcontrol command (see
the dedicated box).