Setup a Rocky 9 (or whatever is supported for your version of CMS) server. I did a minimal installation
.
Install dependencies
dnf install -y glibc.i686 libgcc.i686 libXext.i686 libX11.i686 libXtst.i686 libcrypt.so.1 libnsl libnsl.so.1 libz.so.1 bc chkconfig docker epel-release inotify-tools lsof sysstat tcpdump
The following command will show any missing dependencies. If any, install them. (Everything should have been installed with the dnf
command)
type awk basename bc cat chkconfig chmod chown crond crontab curl cut date df dirname docker epel-release expr file find getenforce getent grep groupadd gzip head hostname id ifconfig inotify-tools ls lsof md5sum mkdir mktemp mount mv netstat ps readlink rev rm rpm sed sleep sort stat su swapon sysstat systemctl tail tar tcpdump tee telnet timedatectl top touch tr uname unzip useradd usermod vmstat watch wc whoami yum zip | grep "not found"
Set limits for the CMS user to prevent CMS from using up all of the system's resources. /etc/security/limits.d/20-nproc.conf
bash -c "cat >> /etc/security/limits.d/20-nproc.conf" <<'EOF'
cmsuser soft nofile 65535
cmsuser hard nofile 65535
cmsuser soft nproc unlimited
cmsuser hard nproc unlimited
EOF
Edit the system hosts file at /etc/hosts
to contain a new line that resolves cmsserver
to the system's IP address.
127.0.0.1 localhost.localdomain localhost
172.21.90.15 cmsserver
This is the Console installation method. Run the installation as root
!
Download CMS from Calix here and transfer it to your server.
Unzip the zip file. You'll be left with install.bin
unzip R15.1.645_linux64.zip
Run the installer
sh install.bin -i console
If it tells you there are missing dependencies, Quit the installer and install them.
The installer is pretty self-explanatory - work through it and you'll have a working CMS server.
Here are the steps:
/opt/cms/
)Check if the installer created a initrd file to start CMS on system start. If it did not, copy the script template and open it for editing (using vim
)
if [[ ! -f /etc/init.d/cms ]]; then printf "\e[0;33mCopying CMS start script: \e[0m" && sleep 1 && cp /opt/cms/bin/cms /etc/init.d/ && printf "\e[0;32mSuccess! \e[0m\n" && sed -i 's|CMSHOME=.*|CMSHOME=/opt/cms|' /etc/init.d/cms; else printf "\e[1;33mFile already exists. \e[1;31mExiting! \e[0m\n"; fi
Modify the CMSHOME
variable to define where CMS is installed. In this case, /opt/cms
Use chkconfig to add the CMS script to the startup process
/sbin/chkconfig --add cms
Create a new XML file to house our firewalld
rules. These are all the ports Calix states should be open.
bash -c "cat > /etc/sysconfig/network-scripts/cms-firewall-service.xml" <<'EOF'
<?xml version="1.0" encoding="utf-8"?>
<service>
<port port="21" protocol="tcp"/>
<port port="67" protocol="udp"/>
<port port="69" protocol="udp"/>
<port port="123" protocol="udp"/>
<port port="162" protocol="udp"/>
<port port="514" protocol="udp"/>
<port port="1098" protocol="udp"/>
<port port="1099" protocol="udp"/>
<port port="1645" protocol="tcp"/>
<port port="2222" protocol="udp"/>
<port port="2626" protocol="tcp"/>
<port port="2627" protocol="tcp"/>
<port port="5055" protocol="tcp"/>
<port port="5056" protocol="tcp"/>
<port port="5432" protocol="tcp"/>
<port port="8080" protocol="tcp"/>
<port port="8093" protocol="tcp"/>
<port port="8179" protocol="tcp"/>
<port port="8190" protocol="tcp"/>
<port port="8196" protocol="tcp"/>
<port port="8198" protocol="tcp"/>
<port port="8443" protocol="tcp"/>
<port port="8750" protocol="tcp"/>
<port port="9199" protocol="tcp"/>
<port port="18080" protocol="tcp"/>
<port port="18443" protocol="tcp"/>
<port port="20002" protocol="udp"/>
<port port="28080" protocol="tcp"/>
<port port="28443" protocol="tcp"/>
</service>
EOF
Create a new firewalld service
firewall-offline-cmd --new-service-from-file=/etc/sysconfig/network-scripts/cms-firewall-service.xml --name=CMS && \
firewall-cmd --reload
Create a new firewall rule
firewall-cmd --add-rich-rule="rule family="ipv4" source address="172.21.90.0/24" service name=CMS accept" --permanent && \
firewall-cmd --reload
Use the desktop client to login to the CMS server with the default credentials rootgod / root