=^.^=

Force Unlock Zimbra Shutdown Domain

karma

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/backup

download 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 DN

DC=yourdomainname, DC=com

Click on domain, make changes searching for
zimbradomainstatus
zimbraDomainRenameInfo - set to "active" no quotes
zimbradomainrenameinfo
zimbraDomainStatus - delete all text from box

zimbraMailStatus - enabled
zmprov md YOUR_DOMAIN_NAME zimbraMailStatus enabled

update verify it updated as it sometimes will prompt you "Click Update Object" button at bottom of object

as zimbra user
zmmailboxdctl restart

zmprov 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.