Following are the steps to change the IP addresses of Controllers running in a bare-metal (Docker) environment.
Procedure
- Change the IP address of each Controller node within the cluster to the new IP by manually editing the network-scripts on the host and changing the interface configuration.
- Ensure that the new Controller IP addresses are reachable in the network from the other Controller nodes.
- Edit the
/etc/systemd/system/avicontroller.service
or /usr/sbin/avicontroller
file on each host running the Controller Docker container and overwrite the old Controller IP with the new Controller IP wherever applicable.
The long command line below contains the Controller IP in a sample /etc/systemd/system/avicontroller.service
file.
code>ExecStartPre=/usr/bin/docker run --name=avicontroller -m 48g --cpu-period=100000 --cpu-quota=2400000 -p 5098:5098 -p 8443:8443 -p 5054:5054 -p 80:80 -p 443:443 -p 161:161/udp -d --privileged -e "CONTAINER_NAME=avicontroller" -e "MANAGEMENT_IP=10.122.0.112" -e NUM_CPU=24 -e NUM_MEMG=48 -e DISK_GB=30 -e CNTRL_SSH_PORT=5098 -e SYSINT_PORT=8443 -e HTTP_PORT=80 -e HTTPS_PORT=443 -v /:/hostroot/ -v /dev:/dev -v /var/run/docker.sock:/var/run/docker.sock -v /run/xtables.lock:/run/xtables.lock -v /opt/avi/controller/data:/vol/ avinetworks/controller:18.2.5-5116-20190708.063533</code>
- On each Controller host the administrator would run this trio of commands:
systemctl daemon-relaod
systemctl stop avicontroller
systemctl start avicontroller
- Corresponding to the sample in step 3, on any one of the Controller containers, the administrator would run these commands:
cd /opt/avi/python/bin
python change_ip.py -i 10.122.0.111 -o 10.122.0.112 -o 10.122.0.113
Results
The Controller cluster comes back up with the new IPs.