ZmSetServerName: Difference between revisions
m (removing spam) |
No edit summary |
||
Line 11: | Line 11: | ||
Restarting services on all hosts is required after this operation | Restarting services on all hosts is required after this operation | ||
Someone else's 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: | |||
# 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. This should really be possible through zmprov or the admin console, but beta software is fun! |
Revision as of 08:44, 6 June 2007
Changing the zimbra server's hostname
The commands
su - zimbra zmcontrol stop /opt/zimbra/libexec/zmsetservername <NEW_HOSTNAME>
will set the zimbra server's name to <NEW_HOSTNAME>
Now update the ip address(es) and host name(s) for the server(s).
Restarting services on all hosts is required after this operation
Someone else's 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:
- 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. This should really be possible through zmprov or the admin console, but beta software is fun!