Difference between revisions of "ZmSetServerName"

Line 1: Line 1:
== Changing the zimbra server's hostname ==
+
== Changing the zimbra server's hostname ==  
(in 10 oh so easy steps)
+
 
  
 
1. MAKE A VERY GOOD BACKUP (your entire /opt/zimbra and any linked folders)
 
1. MAKE A VERY GOOD BACKUP (your entire /opt/zimbra and any linked folders)
  
Once again warning before you run the below-heed the advice ''make a backup''
+
2. The commands: (Warning: Once again before you run the below, heed the advice - ''make a backup'' - it seems simple but there's a million ways this process can get messed up)
 
 
2. The commands:
 
 
   su - zimbra
 
   su - zimbra
 
   zmcontrol stop
 
   zmcontrol stop
 
   /opt/zimbra/libexec/zmsetservername NEW_HOSTNAME
 
   /opt/zimbra/libexec/zmsetservername NEW_HOSTNAME
  
This will set the zimbra server's name to NEW_HOSTNAME
+
3. Some additional conf files will need to be modified manually to reflect the new hostname:
 
 
3. Now update the ip address(es) and host name(s) for the server(s).
 
 
 
4. Some additional conf files will need to modify manually to reflect the new hostname:
 
 
     ldap-scm.cf
 
     ldap-scm.cf
 
     ldap-transport.cf
 
     ldap-transport.cf
Line 23: Line 17:
 
     ldap-vam.cf
 
     ldap-vam.cf
  
5. Update DNS server
+
Now update the ip address(es) and host name(s) for the server(s)
  
6. Edit /etc/sysconfig/network
+
4. Update DNS server
  
7. Edit /etc/hosts file with new hostname
+
5. Edit /etc/sysconfig/network
  
8. Reboot
+
6. Edit /etc/hosts file with new hostname
  
(Those in multi server setups: Restarting services on all hosts is required after this operation be sure to change any corresponding references to the old hostname!)
+
7. Reboot
  
------
+
(Those in multi-server setups: Be sure to change any corresponding references to the old hostname & restart services on all hosts)
  
9. Things to check afterwards:
+
8. Things to check afterwards:
  
 
It may not catch everything, but you can check manually. Use zmlocalconfig and zmprov to check the global config, server configs, user settings, etc.
 
It may not catch everything, but you can check manually. Use zmlocalconfig and zmprov to check the global config, server configs, user settings, etc.
Line 43: Line 37:
 
etc...
 
etc...
  
10. You may need to regenerate certificates.
+
9. You may need to regenerate certificates. (another wiki article)
 +
 
 +
10. And if it didn't work (you'll start getting a lot of errors/funny quirks) double check a few of the below comments & suggestions:
 +
 
  
 
------
 
------
 
  
 
Notes on what people had to change manually after zmsetservername:
 
Notes on what people had to change manually after zmsetservername:
  
 
Someone's note:
 
Someone's note:
zmprov mcf zimbraLogHostname zimbra.company.com
+
zmprov mcf zimbraLogHostname zimbra.company.com
zmlocalconfig -e zimbra_server_hostname=zimbra.company.com
+
zmlocalconfig -e zimbra_server_hostname=zimbra.company.com
zmlocalconfig -e ldap_master_url=ldap://zimbra.company.com:389
+
zmlocalconfig -e ldap_master_url=ldap://zimbra.company.com:389
zmlocalconfig -e ldap_url=ldap://zimbra.company.com
+
zmlocalconfig -e ldap_url=ldap://zimbra.company.com
zmlocalconfig -e snmp_trap_host=zimbra.company.com
+
zmlocalconfig -e snmp_trap_host=zimbra.company.com
zmlocalconfig -e av_notify_user=admin@company.com
+
zmlocalconfig -e av_notify_user=admin@company.com
zmlocalconfig -e smtp_destination=admin@company.com
+
zmlocalconfig -e smtp_destination=admin@company.com
zmlocalconfig -e smtp_source=admin@company.com
+
zmlocalconfig -e smtp_source=admin@company.com
  
 
Another response:
 
Another response:
 
There are several files in which I found the old host name after making all the above changes. I edited these files and replaced the old name with the new one (root user):
 
There are several files in which I found the old host name after making all the above changes. I edited these files and replaced the old name with the new one (root user):
  
Under zimbra/conf:
+
Under /opt/zimbra/conf:
amavisd.conf
+
amavisd.conf
perdition.conf
+
perdition.conf
swatchrc
+
swatchrc
I also had an entry in: zimbra/postfix/conf/main.cf (myhostname)
+
I also had an entry in /opt/zimbra/postfix/conf/main.cf (myhostname)
  
  
 
------
 
------
Not checked for reliability-someone recently mentioned:
+
Not checked for reliability-someone mentioned (based on the old directions):
  
 
If you follow the directions exactly (stopping the services first), you get an error. If, instead, you just run the command, there is no error, and it stops the services automatically. That seems to have solved my "problem", or at least alleviated my fears. Since the internal DNS lists both domains fully, I'm not too worried about any leftover domain issues.
 
If you follow the directions exactly (stopping the services first), you get an error. If, instead, you just run the command, there is no error, and it stops the services automatically. That seems to have solved my "problem", or at least alleviated my fears. Since the internal DNS lists both domains fully, I'm not too worried about any leftover domain issues.
 +
  
 
-----
 
-----
 +
The logger/stats graphs issues (mainly if you didn't reboot):
  
 
I had to switch the domain name and found troubles with the logger and server statistics-extra steps needed:
 
I had to switch the domain name and found troubles with the logger and server statistics-extra steps needed:
 
(zimbra 4.5.5 on ubuntu 6.06)
 
(zimbra 4.5.5 on ubuntu 6.06)
  
the stopping services first thing
+
the not stopping services first thing
  
 
then:
 
then:
Line 87: Line 85:
 
hostname newhostname
 
hostname newhostname
  
followed by
+
followed by:
 
+
su - zimbra
Code:
+
zmloggerctl stop
su - zimbra
+
ps aux | grep zmlogger
zmloggerctl stop
+
kill any logger processes
ps aux | grep zmlogger
+
zmloggerctl start
kill any logger processes
+
/opt/zimbra/libexec/zmlogprocess
zmloggerctl start
+
And my graps started working on the fly
/opt/zimbra/libexec/zmlogprocess
 
 
 
And my graps started working on the fly.
 
  
 
But after this, I had TWO server-statistics:
 
But after this, I had TWO server-statistics:
Line 168: Line 163:
  
 
This is the dn of your server. You will need to change it. To do so create a file called, for example, changes.ldif. For the above example, it would look like this:
 
This is the dn of your server. You will need to change it. To do so create a file called, for example, changes.ldif. For the above example, it would look like this:
 
+
cn=oldhost.domain.com,cn=servers,cn=zimbra
cn=oldhost.domain.com,cn=servers,cn=zimbra
+
cn=newhost.domain.com
cn=newhost.domain.com
 
  
 
Now, grab your zimbra_ldap_password from ~zimbra/conf/localconfig.xml.
 
Now, grab your zimbra_ldap_password from ~zimbra/conf/localconfig.xml.
Line 176: Line 170:
 
Then run the following command from your ~zimbra/openldap/bin dir:
 
Then run the following command from your ~zimbra/openldap/bin dir:
  
./ldapmodrdn -h localhost -w password_From_above -D "uid=zimbra,cn=admins,cn=zimbra" -x -r -f changes.ldif
+
./ldapmodrdn -h localhost -w password_From_above -D "uid=zimbra,cn=admins,cn=zimbra" -x -r -f changes.ldif
  
Now do a zmcontrol shutdown. Then do a ps -U zimbra and kill any zimbra-related processes that are still hanging around. If you kill perl, you should clear the .pid file here:
+
Now do a zmcontrol shutdown.  
  
 +
Then do a ps -U zimbra and kill any zimbra-related processes that are still hanging around.
 +
If you kill perl, you should clear the .pid file here:
 
/opt/zimbra/zimbramon/FIFO/zm.pid
 
/opt/zimbra/zimbramon/FIFO/zm.pid
  
 
Now rebuild your SSL keys for the new hostname.
 
Now rebuild your SSL keys for the new hostname.
  
If all went well, everything should start on a zmcontrol startup
+
If all went well, everything should start on a zmcontrol startup.
  
 
One thing I didn't address is changing the hostname on statistics data in mysql, but it doesn't seem to cause a problem, so I haven't gotten around to it yet.
 
One thing I didn't address is changing the hostname on statistics data in mysql, but it doesn't seem to cause a problem, so I haven't gotten around to it yet.
  
Make sure to back everything up and cross your fingers. This should really be possible through zmprov or the admin console, but beta software is fun!
+
Make sure to back everything up and cross your fingers!
 
 
 
-----
 
-----
  
 
[[Category:Command Line Interface]]
 
[[Category:Command Line Interface]]

Revision as of 18:40, 17 August 2007

Changing the zimbra server's hostname

1. MAKE A VERY GOOD BACKUP (your entire /opt/zimbra and any linked folders)

2. The commands: (Warning: Once again before you run the below, heed the advice - make a backup - it seems simple but there's a million ways this process can get messed up)

 su - zimbra
 zmcontrol stop
 /opt/zimbra/libexec/zmsetservername NEW_HOSTNAME

3. Some additional conf files will need to be modified manually to reflect the new hostname:

   ldap-scm.cf
   ldap-transport.cf
   ldap-vad.cf
   ldap-vmd.cf
   ldap-vmm.cf
   ldap-vam.cf

Now update the ip address(es) and host name(s) for the server(s)

4. Update DNS server

5. Edit /etc/sysconfig/network

6. Edit /etc/hosts file with new hostname

7. Reboot

(Those in multi-server setups: Be sure to change any corresponding references to the old hostname & restart services on all hosts)

8. Things to check afterwards:

It may not catch everything, but you can check manually. Use zmlocalconfig and zmprov to check the global config, server configs, user settings, etc.

zmprov gacf | grep zimbra.domain.com

etc...

9. You may need to regenerate certificates. (another wiki article)

10. And if it didn't work (you'll start getting a lot of errors/funny quirks) double check a few of the below comments & suggestions:



Notes on what people had to change manually after zmsetservername:

Someone's note:

zmprov mcf zimbraLogHostname zimbra.company.com
zmlocalconfig -e zimbra_server_hostname=zimbra.company.com
zmlocalconfig -e ldap_master_url=ldap://zimbra.company.com:389
zmlocalconfig -e ldap_url=ldap://zimbra.company.com
zmlocalconfig -e snmp_trap_host=zimbra.company.com
zmlocalconfig -e av_notify_user=admin@company.com
zmlocalconfig -e smtp_destination=admin@company.com
zmlocalconfig -e smtp_source=admin@company.com

Another response: There are several files in which I found the old host name after making all the above changes. I edited these files and replaced the old name with the new one (root user):

Under /opt/zimbra/conf:

amavisd.conf
perdition.conf
swatchrc
I also had an entry in /opt/zimbra/postfix/conf/main.cf (myhostname)



Not checked for reliability-someone mentioned (based on the old directions):

If you follow the directions exactly (stopping the services first), you get an error. If, instead, you just run the command, there is no error, and it stops the services automatically. That seems to have solved my "problem", or at least alleviated my fears. Since the internal DNS lists both domains fully, I'm not too worried about any leftover domain issues.



The logger/stats graphs issues (mainly if you didn't reboot):

I had to switch the domain name and found troubles with the logger and server statistics-extra steps needed: (zimbra 4.5.5 on ubuntu 6.06)

the not stopping services first thing

then: change of /etc/hosts and hostname newhostname

followed by:

su - zimbra
zmloggerctl stop
ps aux | grep zmlogger
kill any logger processes
zmloggerctl start
/opt/zimbra/libexec/zmlogprocess

And my graps started working on the fly

But after this, I had TWO server-statistics: 1. the old ones with the old servername 2. a new - empty - set with the new servername.

at this point dnsdomainname still gave me the old domain !

I changed the content of the filename /etc/hostname (containing the old hostname ) and did a reboot.

Now serverstatistics gives me only one servername, the new one, with the old statistical data still there and the new one displayed in a new set of graphs.

Beware: Before going the way described above, I had tried to solve the logging problem with: zmprov mcf zimbraLogHostname newhostname I finished up with a big mess and had to reverse completely to the old hostname to get the admin-console working again.



Someone else's OLDER sans-zmsetservername method:

I went through the very painful process of chaning my hostname without reinstalling zimbra. This will probably void your warranty, but it worked for me (FC4, M1):

Change your hostname using hostname. Change your hosts file and your /etc/sysconfig/network

use zmprov to change the following fields to your new hostname zimbraLmtpAdvertisedName zimbraServiceHostname zimbraSmtpHostname

for example:

zmprov cs oldserver.com zimbraLmtpAdvertisedName newserver.com ....

Then, for every single user in your sytem (that's right), you have to do this:

zmprov ma user@domain.com zimbraMailHost new.domain.com

I suggest writing a shell script. To get a list of users, do this or something similar:

zmprov gaa -v | grep '# name'

Once your done with this tedious task, do a:

grep -il oldserver.com ~zimbra/conf/*

Change the hostname in any of the files returned by this command using vi or whatever.

Then shutdown your zimbra software:

zmcontrol shutdown

Start it back up:

zmcontrol startup

The only service that will start is ldap and zmmon (for the server in question, at least). This is where it gets fun. You have to manually edit the directory as follows.

First figure out your DN. From ~zimbra/openldap/bin do a:

./ldapsearch -x | grep oldservername.com

You will see a line that looks like this:

  1. oldhost.domain.com, servers, zimbra

dn: cn=oldhost.domain.com,cn=servers,cn=zimbra [snip] cn: oldhost.domain.com

This is the dn of your server. You will need to change it. To do so create a file called, for example, changes.ldif. For the above example, it would look like this:

cn=oldhost.domain.com,cn=servers,cn=zimbra
cn=newhost.domain.com

Now, grab your zimbra_ldap_password from ~zimbra/conf/localconfig.xml.

Then run the following command from your ~zimbra/openldap/bin dir:

./ldapmodrdn -h localhost -w password_From_above -D "uid=zimbra,cn=admins,cn=zimbra" -x -r -f changes.ldif

Now do a zmcontrol shutdown.

Then do a ps -U zimbra and kill any zimbra-related processes that are still hanging around. If you kill perl, you should clear the .pid file here: /opt/zimbra/zimbramon/FIFO/zm.pid

Now rebuild your SSL keys for the new hostname.

If all went well, everything should start on a zmcontrol startup.

One thing I didn't address is changing the hostname on statistics data in mysql, but it doesn't seem to cause a problem, so I haven't gotten around to it yet.

Make sure to back everything up and cross your fingers!


Jump to: navigation, search