Changing the hostname/IP address¶
Overview¶
This document is intended to describe the steps that must be taken if you need to change your Linux Management Node’s hostname and/or IP address after the cluster is installed and configured by xCAT. This documentation will only cover the changes by xCAT and will not try to cover any other changes by any other tools.
Backup your xCAT data¶
Clean up the database by running tabprune
command:
tabprune -a auditlog
tabprune -a eventlog
Now take a snapshot of the Management Node. This will also create a database backup. You can use this data as reference if needed.
xcatsnap -d
Stop xCAT¶
You need to stop the xcat daemon and any other applications that are using the xCAT database on the Management Node and the Service Nodes. To determine your database, run
lsxcatd -a | grep dbengine
To stop xCAT:
service xcatd stop
Stop The Database¶
For all databases except SQlite, you should stop the database. For example
service postgresql stop
service mysqld stop
Change the Management Hostname¶
hostname command
hostname <new_MN_name>
Edit hostname configuration file
Add hostname in/etc/hostname
Add HOSTNAME attribute in/etc/sysconfig/network
(only for [RHEL])
Update Database Files¶
You need to update the new MN hostname or IP address in several database configuration files.
SQLite¶
Nothing to do.
Postgresql¶
- Edit
/etc/xcat/cfgloc
file, replacePg:dbname=xcatdb;host=<old_MN_ip>|xcatadm|xcat20
withPg:dbname=xcatdb;host=<new_MN_ip>|xcatadm|xcat20
. - Edit config database config file
/var/lib/pgsql/data/pg_hba.conf
, replacehost all all <old_MN_ip>/32 md5
withhost all all <new_MN_ip>/32 md5
.
Mysql¶
Edit /etc/xcat/cfglooc
, replace mysql:dbname=xcatdb;host=<old_MN_ip>|xcatadmin|xcat20
with mysql:dbname=xcatdb;host=<new_MN_ip>|xcatadmin|xcat20
.
Start the database¶
service postgresql start
service mysqld start
Start xCAT
service xcatd start
Verify your new database setup
lsxcatd -a | grep dbengine
tabdump site # if output exists
Change The Definition In xCAT Database¶
Change the site table master attribute¶
chdef -t site master=<new_MN_ip>
Change all IP address attribute relevant to the MN IP address¶
For example, old address was “10.6.0.1”
Query the attributes with old address
lsdef -t node -l | grep "10.6.0.1" # the output may looks like conserver=10.6.0.1 conserver=10.6.0.1 conserver=10.6.0.1 conserver=10.6.0.1 nfsserver=10.6.0.1 servicenode=10.6.0.1 xcatmaster=10.6.0.1 kcmdline=quiet repo=http://10.6.0.1/install/rhels6/ppc64/ ks=http://10.6.0.1/install/autoinst /slessn ksdevice=d6:92:39:bf:71:05 nfsserver=10.6.0.1 servicenode=10.6.0.1 tftpserver=10.6.0.1 xcatmaster=10.6.0.1 servicenode=10.6.0.1 xcatmaster=10.6.0.1
As the attribute with the old IP address is list above, take conserver as a example, query the nodes with
conserver=10.6.0.1
.lsdef -t node -w conserver="10.6.0.1" # the output looks like cn1 (node) cn2 (node) cn3 (node) cn4 (node)
Change the conserver address for cn1,cn2,cn3,cn4
chdef -t node cn1-cn4 conserver=<new_ip_address>
Repeat the same process for the other attributes.
Change networks table¶
Check your networks table to see if the network definitions are still correct, if not edit accordingly
lsdef -t network -l
chdef -t network <key=value>
Check Result¶
You can check whether all the old address has been changed using
dumpxCATdb -P <new database backup path>
cd <new database backup path>
fgrep "10.6.0.1" *.csv
If the old address still exists in the ``*.csv` file, you can edit this file, then use the following command to restore the records
tabrestore <xxx.csv>
Generate SSL credentials(optional)¶
If you do not generate new credentials, skip this section. If you decide generate new credentials, then you will use the following command.
Generate new credentials
xcatconfig -c
Update the policy table with new MN name, replace
"1.4","old_MN_name",,,,,,"trusted",,
with"1.4","new_MN_name",,,,,,"trusted",,
Setup up conserver with new credentials
makeconservercf
External DNS Server Changed¶
Update nameserver entries in
/etc/resolv.conf
Update nameserver attribute in
site
tablechdef -t site -o clustersite nameservers="new_ip_address1,new_ip_address2"
Update site forwarders in DB
chdef -t site -o clustersite forwarders="new_ip_address1,new_ip_address2"
Run command
makedns -n
Domain Name Changed¶
Change the entries in /etc/hosts
.
Change the /etc/resolv.conf
, forwarders attribute in site table.
lsdef -t site -o clustersite -i forwarders
chdef -t site -o clustersite forwarders <new list>
Change the domain name in the xCAT database site table.
chdef -t site -o clustersite domain=<new_domainname>
From xCAT 2.8, multiple domains is supported in the cluster. Update the networks table definition.
lsdef -t network -l
chdef -t network -o <network_name> ddnsdomain=<new_domainname1,new_domainname2>
Update the Provision Environment¶
Determine if the Management node is defined in the database, assuming it was done correctly using xcatconfig -m, by running:
lsdef __mgmtnode
If it exists, then use the return name and do the following:
Remove the MN from DNS configuration
makedns -d <old_MN_name>Remove the MN from the DHCP configuration
makedns -d <old_MN_name>Remove the MN from the conserver configuration
makedns -d <old_MN_name>Change the MN name in the xCAT database
chdef -t node -o <old_MN_name> -n <new_MN_name>Add the new MN to DNS
makedns -nAdd the MN to dhcp
makedhcp -aAdd the MN to conserver
makeconservercf
Update the genesis packages¶
Run mknb <arch>
after changing the ip of MN.