Cerberus IP is currently hardcoded in 3 places. Following is a set of instructions for how to change this IP address to allow Cerberus to function using a different IP address
Cerberus runs on the host and exposes an API to the backend container to provide host-functionality. Docker containers do not have access to the host network information out of the box, so to make this communication work, several pieces are implemented by hardcoding 10.254.254.254 address. For these example steps, we'll be changing the IP address to 11.254.254.254
Components
Platform: KVM, OVA, ISO based deployment
Software: Smart Software Manager On-Prem Release 7 Release
Solution
Step 1. Change IP alias added to the loopback (lo) interface on the host
# ip addr show lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet 10.254.254.254/32 scope global lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
When On-Prem is installed, as part of the provisioning step, following script is added.
The /sbin/ifup-local script runs automatically whenever the lo interface is brought online.
# cat /sbin/ifup-local
#!/bin/sh
if [[ "$1" == "lo" ]]
then
ip addr add 10.254.254.254 dev lo
fi
Edit this script and change references of 10.254.254.254 to 11.254.254.254, and restart the network service.
systemctl restart network
Step 2. Cerberus service only listens to 10.254.254.254
Inspect Cerberus configuration and validate ip address configured.
# cerberus config:get BIND
10.254.254.254
Change the Cerberus ip configuration and restart Cerberus service.
cerberus config:set BIND=11.254.254.254
cerberus restart
Step 3. References to 10.254.254.254 in docker-compose-up.yml
docker-compose-up.yml file pass the Cerberus ip address to respective containers so they can communicate with host.
Edit the docker-compose-up.yml file with newly modified Cerberus ip address
backend:
extra_hosts:
- "dockerhost:11.254.254.254"
environment:
- CERBERUS_URL=http://11.254.254.254:6000
Step 4. Restart satellite service.
systemctl restart satellite
Post all services are online, verify UI access to Smart Software Manager On-Prem 7.x .
Change ip address to network interface ens192 of Smart Software Manager On-Prem 7.x now.