There are times when we are facing the need to migrate an existing CA Directory Linux Implementation to a new set of servers. The real-world scenarios for this type of need include:
Release 14.1
Component: CA Directory
Operating System: Linux
Within this article, we assume that you know exactly the set of Linux CA Directory servers that needs to be migrated. If not, you can use the exploration parts of the following article to identify them:
Planning on In-Place Upgrading a CA Directory Linux Implementation
We have also decided to separate the migration of a Directory Management UI server into its own topic so that we can simplify the structure of this document and concentrate on the more urgent matter of migrating the Directory servers.
The aforementioned article also re-empasizes the importance of distinguishing the two types of CA Directory installation packages:
The first set of tasks to do is to use the correct package to install the same release of the CA Directory on each of the new servers. To do that, you will need to follow the production documentation starting the following link:
to first prepare your servers to fulfill the system requirements, all the pre-requisites, and then to actually install the correct package of the CA Directory software on each of the servers.
Within this article, we focus on only the migration of the Directory servers, that is the set of servers installed using the Directory Package. This should work out as it is recommended not to deploy any production DSAs on the Management UI servers.
This article is scoped to discuss migrating an existing CA Directory Implementation to a new set of servers. The nature of being a migration allows us to break the migration tasks into two phases and allows the existing services to continue to function. This approach is in general similar to the Parallel upgrade section in the product documentation:
There may exist certain upgrade scenarios where we may not have the luxury to assume that we can simply migrate services within the same CA Directory releases. Yet, even if the new servers is actually an upgrade when we are required to install newer release of the software, the approach using ldif data files to move the data from existing servers to the new servers will most likely not cause any issues at all.
The first phase is focusing on migrating the services to the new servers without concerning the data synchronization between the two sets of servers and allow both systems to function independently.
The second phase is to pause the existing production services, quickly move the production data to this new set of servers, switch the production client applications to connect to the new servers, and finally stop the original services and then retire the original services.
In general, it is recommended not to create extra DSAs on a production Management UI server. Please see:
As such, we focus on
The migration of the existing Directory Servers is then assumed to include only the servers that is installed using the Directory Package. Under this assumption, for each of the existing Directory Server, we need to
Of the steps outlined above, other than "Adjust the configuration files" step, the rest of steps are relatively straight forward.
The following Linux command is a simple way to help locate those files that have either machine names and/or IP address we need to adjust to allow the new servers to offer the same services. Its output is not quite as clean but relatively easy to use:
cd $DXHOME/config
find . -type f -exec grep address {} +
The following is a sample output to give you some ideas to further sort out which files need to adjust:
./DSAConfig.xsd: <xs:annotation><xs:documentation>If a port is specified, then that port is used with all interfaces specified for the host. If an address list is specified, then each component interface must exist on the host and a port can optionally be given against each one. If no port is given, then it is inherited in the usual way.</xs:documentation><xs:appinfo>
./access/access.help: attrs = telephoneNumber, commonName, surname, title, mhsORaddress, dcEmail
./knowledge/knowledge.help:address = tcp Eagle port 1901,
...
./knowledge/unspsc.dxc: address = tcp "XXXXXXXX" port 19489
...
./knowledge/democorp2.dxc:# address = ipv4 "999.999.999.999" port 22389
./schema/mhs.dxc: ldap-names = mhs-or-addresses
./schema/cosine.dxc: name = cosineTextEncodedORaddress
./schema/cosine.dxc: ldap-names = textEncodedORaddress
Usually, these address lines are usually in the files under the knowledge subdirectory, but they could be anywhere else especially the config/servers subdirectory.
With the files located, it can be tedious to go through each of them and change either the machine name or the IP address to ones the new set of servers use.
Once all ldif data loaded into the new servers, then
The steps for the second phase can be outlined as follows:
For an implementation that actually uses the Management UI to manage the DSAs deployment. The migration of the Management UI servers is a subject of its own and will be discussed in a separate article.