Force Unlock Zimbra Shutdown Domain
After doing a host name change on a Zimbra appliance the domain was locked. Error messages included:
Webmail:
This account is currently in maintenance mode
Admin FE
The domain is temporarily locked by the server. You will not be able to make any changes to the domain until the internal lock is removed.
zmprov
ERROR: service.PERM_DENIED (permission denied: can not access domain, domain is in shutdown status)
Unfotunately, it's not possible to change the status in the Admin FE. You're going to have to either use ldapmodify, or if you're ldap-squeamish like me phpldapadmin.
I went through maybe two dozen bellyaching forum threads complaining about this problem and how no one has come up with a solution until I found this article at http://www.zoobey.com/index.php/resources/all-articles-list/430-zimbra-rename-domain-fix:
You may have to run this multiple times for every 1000 users because of a java/zimbra bug. After it you are left with both domains in shutdown mode and having a rename status. These are store in openldap. Below is method to fix it. This is for zimbra 6.0+ - I did it on 7.1.3. BE REALLY CAREFUL AND BACKUP AS YOU CAN MESS STUFF UP Easily.
First, backup your entire /opt/zimbra is recommended and at least your ldap
openldap backup
su - zimbra
/opt/zimbra/libexec/zmslapcat /tmp/backupdownload phpldapadmin (you can do this using ldapmodify as well or any other ldap tool)
phpldapadmin config.php
<?php
$config->custom->appearance['friendly_attrs'] = array(
'facsimileTelephoneNumber' => 'Fax',
'gid' => 'Group',
'mail' => 'Email',
'telephoneNumber' => 'Telephone',
'uid' => 'User Name',
'userPassword' => 'Password'
);$servers = new Datastore();
$servers->newServer('ldap_pla');
$servers->setValue('server','name','My LDAP Server');
$servers->setValue('server','host','YOUR HOST IP');
$servers->setValue('server','port',389);
$servers->setValue('server','base',array(''));
$servers->setValue('login','bind_id','uid=zimbra,cn=admins,cn=zimbra');
$servers->setValue('login','bind_pass','YOUR_PASSWORD');
?>Using PHPLDAPADMIN do the following
Search Base DNDC=yourdomainname, DC=com
Click on domain, make changes searching for
zimbradomainstatus
zimbraDomainRenameInfo - set to "active" no quotes
zimbradomainrenameinfo
zimbraDomainStatus - delete all text from boxzimbraMailStatus - enabled
zmprov md YOUR_DOMAIN_NAME zimbraMailStatus enabledupdate verify it updated as it sometimes will prompt you "Click Update Object" button at bottom of object
as zimbra user
zmmailboxdctl restartzmprov md YOUR_NEWLY_RENAMED_DOMAIN_NAME zimbraMailStatus enabled
If you want to remove old domain
zmprov dd THE_OLD_DOMAIN
You can obtain your LDAP password by running:
$ zmlocalconfig -s | grep zimbra_ldap_password zimbra_ldap_password = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
I found the config.php part uneccecary since the default installation of phpldapadmin supplies a form for directly logging in.
Comments
There are no comments for this item.