Example usecase of running HA RAFT with Containerized NSO. This example is modified from the official example in example.ncs - high-availability/raft-cluster
The Makefile have the following target
build:
Build the container enviorment
certs:
Generate certificate for all nodes
install-certs:
Move the certifcate to the right place
NSO-vol/NSO*:
Set up specific node
deep_clean:
deep_clean will call the following target
clean_log clean_run clean
clean:
clean will remove all the docker images
clean_cert:
clean all the relevent certification
clean_run:
clean the NSO-vol directory
clean_log:
clean the NSO-log-vol directory
clean_CDB:
clean the *.cdb file in NSO-log/run/cdb directory
stop:
stop all container with docker-compose
start:
start all container with docker-compose
compile_packages:
compile the packages inside the developer conainter
cli-c_nso1:
start Cisco style CLI on Leader NSO1
cli-c_nso2:
start Cisco style CLI on Seed NSO2
cli-c_nso3:
start Cisco style CLI on Member NSO3
cli-j_nso1:
start Juniper style CLI on Leader NSO1
cli-j_nso2:
start Juniper style CLI on Seed NSO2
cli-j_nso3:
start Juniper style CLI on Member NSO3
- Copy the development and production image in the images folder
- Set Python dependency in requirements.txt
- Set the dependency that need to be installed via yum and dnf in Dockerfile
- Modify the "VER" and "ARCH" variable in Makefile. "VER" is the Containerized NSO version and "ARCH" is the CPU Architecture.
- "make build" to build the enviorment and import the images
- Start containers and bring up the HA with "make start"
- Build the packages in the development images "make compile_packages"
- Test the packages inside the production images "make cli-c_nso1/nso2" or Juniper CLI "make cli-j_nso1/nso2"
- Check the HARAFT status via "show ha-raft" with "make cli-c_nso1/nso2"
$ make cli-c_nso1
docker exec -it nso1 bash -c 'NCS_IPC_PORT=4561 ncs_cli -C -u admin'
User admin last logged in 2024-05-23T21:40:38.718736+00:00, to 66b15eaced33, from 127.0.0.1 using cli-console
admin connected from 127.0.0.1 using console on 66b15eaced33
admin@n1# show ha-raft
ha-raft status role leader
ha-raft status leader [email protected]
ha-raft status member [ [email protected] [email protected] [email protected] ]
ha-raft status connected-node [ [email protected] [email protected] ]
ha-raft status local-node [email protected]
ha-raft status certificates certificate 7FB82CBFE1CBBE50DC4A30986C3421656C44FE01
expiration-date 2034-05-23T21:39:16+00:00
file-path /nso/certs/nso1.crt
ha-raft status certificates certificate-authority 2C20A4E8AB44AAD1D26BDD8EC2C2E9B2F21E8960
expiration-date 2034-05-23T21:39:16+00:00
file-path /nso/certs/ca.crt
ha-raft status log current-index 2
ha-raft status log applied-index 2
ha-raft status log num-entries 2
ha-raft status log replications [email protected]
state in-sync
index 2
lag 0
ha-raft status log replications [email protected]
state in-sync
index 2
lag 0