190 lines
5.7 KiB
RPMSpec
190 lines
5.7 KiB
RPMSpec
%define __check_files %{nil}
|
|
%define __spec_build_pre %{nil}
|
|
%define __arch_install_post %{nil}
|
|
%define release_version 1
|
|
%define release_date %(echo `date +%%Y%%m%%d`)
|
|
%define project_lname omc
|
|
%define project_Uname OMC
|
|
|
|
Name: %{project_lname}
|
|
Summary: 5GC OMC
|
|
Version: 2.2410.4
|
|
Release: %{release_date}
|
|
Vendor: omc
|
|
URL: https://www.omc.com/
|
|
License: commercial
|
|
Group: Applications/Communications
|
|
#BuildRoot: $PWD/rpmoutput
|
|
%description
|
|
5GC OMC
|
|
|
|
%prep
|
|
rm -rf ${RPM_BUILD_ROOT}/*
|
|
mkdir -p ${RPM_BUILD_ROOT}
|
|
cp -rf ${RPM_BUILD_DIR}/* ${RPM_BUILD_ROOT}/
|
|
chmod +rx ${RPM_BUILD_ROOT}/usr/local/omc
|
|
chmod +rx ${RPM_BUILD_ROOT}/usr/local/omc/*
|
|
chmod +rx ${RPM_BUILD_ROOT}/usr/local/bin/*
|
|
chmod +x ${RPM_BUILD_ROOT}/usr/local/omc/htdocs/front
|
|
chmod +rx ${RPM_BUILD_ROOT}/usr/lib64/*
|
|
|
|
# 安装完成后执行
|
|
%post
|
|
OMCRootDir=/usr/local/omc
|
|
OMCEtcDir=${OMCRootDir}/etc
|
|
FERootDir=${OMCRootDir}/htdocs/front
|
|
UsrLib64Dir=/usr/lib64
|
|
OMCBinDir=${OMCRootDir}/bin
|
|
OMCStaticDir=${OMCRootDir}/static
|
|
UsrLocalBinDir=/usr/local/bin
|
|
OMCDaemon=omcd
|
|
NginxEtcDir=/etc/nginx
|
|
CFileList="restconf.yaml crontask.yaml tasks.yaml sshsvc.yaml capconf.yaml omc.conf"
|
|
LogoFileList="zh_brand.png zh_icon.png en_brand.png en_icon.png"
|
|
|
|
echo -n "Stopping OMC service ... "
|
|
systemctl stop restagent.service
|
|
systemctl stop crontask.service
|
|
systemctl stop sshsvc.service
|
|
systemctl stop captrace.service
|
|
echo "done"
|
|
|
|
for CFile in ${CFileList}; do
|
|
if [ ! -e "${OMCEtcDir}/${CFile}" ]; then
|
|
cp -f ${OMCEtcDir}/default/${CFile} ${OMCEtcDir}
|
|
else
|
|
# mv -f ${OMCEtcDir}/${CFile} ${OMCEtcDir}/${CFile}.bak
|
|
# cp -f ${OMCEtcDir}/default/${CFile} ${OMCEtcDir}
|
|
if [ -e "${OMCBinDir}/upgconf.sh" ]; then
|
|
${OMCBinDir}/upgconf.sh
|
|
fi
|
|
fi
|
|
done
|
|
|
|
if [ ! -e "${FERootDir}/config.js" ]; then cp ${FERootDir}/default/config.js ${FERootDir}; fi
|
|
for LogoFile in ${LogoFileList}; do
|
|
if [ ! -e "${OMCStaticDir}/logo/${LogoFile}" ]; then
|
|
cp ${OMCStaticDir}/omc.d/logo/${LogoFile} ${OMCStaticDir}/logo;
|
|
fi
|
|
done
|
|
if ! id -u omc >/dev/null 2>&1 ; then useradd -d /opt/omc -m -s /bin/bash -p1000ftp@kp omc; else echo "user omc exist"; fi
|
|
mkdir -p /opt/omc/ftp
|
|
mkdir -p /opt/omc/ftp/log
|
|
cd ${UsrLib64Dir}
|
|
if [ ! -e libwireshark.so.15 ]; then ln -s libwireshark.so.15.0.12 libwireshark.so.15; fi
|
|
if [ ! -e libwireshark.so ]; then ln -s libwireshark.so.15.0.12 libwireshark.so; fi
|
|
if [ ! -e libwiretap.so.12 ]; then ln -s libwiretap.so.12.0.12 libwiretap.so.12; fi
|
|
if [ ! -e libwiretap.so ]; then ln -s libwiretap.so.12.0.12 libwiretap.so; fi
|
|
if [ ! -e libwsutil.so.13 ]; then ln -s libwsutil.so.13.1.0 libwsutil.so.13; fi
|
|
if [ ! -e libwsutil.so ]; then ln -s libwsutil.so.13.1.0 libwsutil.so; fi
|
|
cd ${UsrLocalBinDir}
|
|
if [ ! -e ${OMCDaemon} ]; then ln -s ${OMCBinDir}/omcsvc.sh ${OMCDaemon}; fi
|
|
|
|
# setting firewall
|
|
PortList="80 443 44080 44443 33030 22222"
|
|
for Port in ${PortList}; do
|
|
firewall-cmd --zone=public --add-port=${Port}/tcp --permanent
|
|
done
|
|
firewall-cmd --reload
|
|
|
|
systemctl daemon-reload
|
|
systemctl enable restagent.service
|
|
systemctl enable crontask.service
|
|
systemctl enable sshsvc.service
|
|
systemctl enable captrace.service
|
|
|
|
# read environment parameter and to do
|
|
if [ "$M_PARAM" = "install" -o "$M_PARAM" = "upgrade" ]; then
|
|
echo "M parameter: $M_PARAM"
|
|
if [ -n "$C_PARAM" ]; then
|
|
echo "C parameter: $C_PARAM"
|
|
${OMCRootDir}/bin/setomc.sh -m $M_PARAM -c $C_PARAM
|
|
else
|
|
${OMCRootDir}/bin/setomc.sh -m $M_PARAM
|
|
fi
|
|
# exit while failed to run setomc.sh
|
|
if [ $? -ne 0 ]; then
|
|
echo "setomc.sh execution failed. Exiting."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
echo -n "Starting OMC service ... "
|
|
systemctl start captrace.service
|
|
systemctl start sshsvc.service
|
|
systemctl start crontask.service
|
|
systemctl start restagent.service
|
|
echo "done"
|
|
|
|
# 卸载时执行
|
|
%postun
|
|
UsrLocalBinDir=/usr/local/bin
|
|
UsrLib64Dir=/usr/lib64
|
|
cd ${UsrLib64Dir}
|
|
rm libwireshark.so.15
|
|
rm libwireshark.so
|
|
rm libwiretap.so.12
|
|
rm libwiretap.so
|
|
rm libwsutil.so.13
|
|
rm libwsutil.so
|
|
rm -f ${UsrLocalBinDir}/omcd
|
|
|
|
# setting firewall
|
|
PortList="80 443 44080 44443 33030 22222"
|
|
for Port in ${PortList}; do
|
|
firewall-cmd --zone=public --remove-port=${Port}/tcp --permanent
|
|
done
|
|
firewall-cmd --reload
|
|
|
|
if [ "$1" = "0" ] ; then
|
|
sudo systemctl stop restagent.service
|
|
sudo systemctl stop crontask.service
|
|
sudo systemctl stop sshsvc.service
|
|
sudo systemctl stop captrace.service
|
|
#rm -rf /usr/local/omc
|
|
rm -rf /etc/nginx/conf.d/omc.conf
|
|
sudo systemctl disable restagent.service
|
|
sudo systemctl disable crontask.service
|
|
sudo systemctl disable sshsvc.service
|
|
sudo systemctl disable captrace.service
|
|
sudo systemctl daemon-reload
|
|
else
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl stop restagent.service
|
|
sudo systemctl stop crontask.service
|
|
sudo systemctl stop sshsvc.service
|
|
sudo systemctl stop captrace.service
|
|
sudo systemctl start crontask.service
|
|
sudo systemctl start sshsvc.service
|
|
sudo systemctl start captrace.service
|
|
sudo systemctl start restagent.service
|
|
fi
|
|
|
|
# 规定那些文件必须放入安装程序中,如果没有就报错
|
|
%files
|
|
%defattr(-,root,root)
|
|
/usr/local/omc/.ssh
|
|
/usr/local/omc/mmllog
|
|
/usr/local/omc/mmlhome
|
|
/usr/local/omc/bin
|
|
/usr/local/omc/etc
|
|
/usr/local/omc/htdocs
|
|
# %exclude /usr/local/omc/htdocs/front/wiregasm/wiregasm.wasm.gz
|
|
/usr/local/omc/log
|
|
/usr/local/omc/backup
|
|
/usr/local/omc/upload
|
|
/usr/local/omc/software
|
|
/usr/local/omc/license
|
|
/usr/local/omc/database
|
|
/usr/local/omc/static
|
|
#/etc/nginx/conf.d/omc.conf
|
|
/lib/systemd/system/restagent.service
|
|
/lib/systemd/system/crontask.service
|
|
/lib/systemd/system/sshsvc.service
|
|
/lib/systemd/system/captrace.service
|
|
/usr/lib64/libwireshark.so.15.0.12
|
|
/usr/lib64/libwiretap.so.12.0.12
|
|
/usr/lib64/libwsutil.so.13.1.0
|
|
/usr/local/bin/tshark
|
|
|