%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.2411.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/* systemctl daemon-reload echo -n "Stopping OMC service ... " systemctl stop restagent.service systemctl stop crontask.service systemctl stop sshsvc.service systemctl stop captrace.service echo "done" # 安装完成后执行 %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