1
0
Files
build.ems/rpmbuild/SPECS/omc.spec
2025-05-23 18:11:05 +08:00

172 lines
4.8 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.2504.1
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/*
# 安装前执行
%pre
echo -n "Stopping OMC service ... "
systemctl stop restagent.service
systemctl stop sshsvc.service
echo "done"
# 安装完成后执行
%post
OMCRootDir=/usr/local/omc
OMCEtcDir=${OMCRootDir}/etc
FERootDir=${OMCRootDir}/htdocs/front
OMCBinDir=${OMCRootDir}/bin
OMCStaticDir=${OMCRootDir}/static
UsrLocalBinDir=/usr/local/bin
OMCDaemon=omcd
NginxEtcDir=/etc/nginx
CFileList="restconf.yaml sshsvc.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 sshsvc.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
if [ ! -e ${UsrLocalBinDir}/${OMCDaemon} ]; then
echo -n "Creating symbolic link ${UsrLocalBinDir}/${OMCDaemon} ... "
ln -s ${OMCBinDir}/omcsvc.sh ${UsrLocalBinDir}/${OMCDaemon};
echo "done"
fi
# setting firewall
port_list="80 443 44080 44443 33030 33443 33066 6379 22222"
for Port in ${port_list}; do
echo -n "firewall-cmd add port ${Port} ... "
firewall-cmd --zone=public --add-port=${Port}/tcp --permanent
done
firewall-cmd --reload
systemctl daemon-reload
systemctl enable restagent.service
systemctl enable sshsvc.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 sshsvc.service
# systemctl start restagent.service
# echo "done"
# 卸载时执行
%postun
UsrLocalBinDir=/usr/local/bin
OMCDaemon=omcd
if [ "$1" = "0" ] ; then
sudo systemctl stop restagent.service
sudo systemctl stop sshsvc.service
#rm -rf /usr/local/omc
rm -rf /etc/nginx/conf.d/omc.conf
sudo systemctl disable restagent.service
sudo systemctl disable sshsvc.service
sudo systemctl daemon-reload
# setting firewall
port_list="80 443 44080 44443 33030 33443 33066 6379 22222"
for Port in ${port_list}; do
echo -n "firewall-cmd remove port ${Port} ... "
firewall-cmd --zone=public --remove-port=${Port}/tcp --permanent
done
firewall-cmd --reload
rm -f ${UsrLocalBinDir}/${OMCDaemon}
else
echo -n "Starting OMC service ... "
sudo systemctl daemon-reload
sudo systemctl stop restagent.service
sudo systemctl stop sshsvc.service
sudo systemctl start sshsvc.service
sudo systemctl start restagent.service
echo "done"
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/sshsvc.service