%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: AGrandTech 5GC OMC Version: 2.2407.1 Release: %{release_date} Vendor: AGrandTech URL: https://www.agrandtech.com/ License: commercial Group: Applications/Communications #BuildRoot: $PWD/rpmoutput %description AGrandTech's 5GC OMC %prep rm -rf ${RPM_BUILD_ROOT}/* #rm -rf ${RPM_BUILD_ROOT}/lib #rm -rf ${RPM_BUILD_ROOT}/usr mkdir -p ${RPM_BUILD_ROOT} cd ${RPM_BUILD_ROOT} #mkdir -p usr/local/omc/ #mkdir -p usr/local/db/ #mkdir -p etc/nginx/conf.d #mkdir -p lib/systemd/system/ #cd ${RPM_BUILD_DIR} 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/db/bin/* chmod +rx ${RPM_BUILD_ROOT}/usr/local/bin/* chmod -R 755 ${RPM_BUILD_ROOT}/usr/local/omc/htdocs/front chmod +rx ${RPM_BUILD_ROOT}/usr/lib64/* #cp -rf omc/.ssh ${RPM_BUILD_ROOT}/usr/local/omc/ #cp -rf omc/mmllog ${RPM_BUILD_ROOT}/usr/local/omc/ #cp -rf omc/mmlhome ${RPM_BUILD_ROOT}/usr/local/omc/ #cp -rf omc/bin ${RPM_BUILD_ROOT}/usr/local/omc/ #cp -rf omc/etc ${RPM_BUILD_ROOT}/usr/local/omc/ #cp -rf omc/htdocs ${RPM_BUILD_ROOT}/usr/local/omc/ #cp -rf omc/log ${RPM_BUILD_ROOT}/usr/local/omc/ #cp -rf omc/backup ${RPM_BUILD_ROOT}/usr/local/omc/ #cp -rf omc/upload ${RPM_BUILD_ROOT}/usr/local/omc/ #cp -rf omc/software ${RPM_BUILD_ROOT}/usr/local/omc/ #cp -rf omc/license ${RPM_BUILD_ROOT}/usr/local/omc/ #cp -rf omc/database ${RPM_BUILD_ROOT}/usr/local/omc/ #cp -rf db/* ${RPM_BUILD_ROOT}/usr/local/db/ #cp -f nginx/omc.conf ${RPM_BUILD_ROOT}/etc/nginx/conf.d/ #cp -f systemd/restagent.service ${RPM_BUILD_ROOT}/lib/systemd/system/restagent.service #cp -f systemd/crontask.service ${RPM_BUILD_ROOT}/lib/systemd/system/crontask.service #cp -f systemd/sshsvc.service ${RPM_BUILD_ROOT}/lib/systemd/system/sshsvc.service #cp -f systemd/captrace.service ${RPM_BUILD_ROOT}/lib/systemd/system/captrace.service #cp -f systemd/kvdb.service ${RPM_BUILD_ROOT}/lib/systemd/system/kvdb.service %build #cd %{buildroot}/.. #make # 安装完成后执行 %post OmcRootDir=/usr/local/omc DependsRootDir=${OmcRootDir}/depends RedisBinDir=/usr/local/bin RedisConfDir=/usr/local/etc/kvdb 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" 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} fi done # Check if install kvdb if [ ! -e "${RedisBinDir}/kvdb_server" ]; then cp -rf ${DependsRootDir}/kvdb/* / chmod 755 ${RedisBinDir}/kvdb* systemctl enable kvdb.service fi if [ ! -e "${RedisConfDir}/kvdb.conf" ]; then cp ${RedisConfDir}/default/kvdb.conf ${RedisConfDir}; fi sed -i 's/replica-read-only yes/replica-read-only no/g' ${RedisConfDir}/kvdb.conf LINE="masterauth helloearth" FILE="${RedisConfDir}/kvdb.conf" if ! grep -qxF "$LINE" "$FILE"; then # 如果不存在,将其添加到文件末尾 echo "$LINE" >> "$FILE" fi 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}/agt.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 #chmod +rx /usr/local/omc #chmod +rx /usr/local/omc/* #chmod +rx /usr/local/db/bin/* #chmod +rx /usr/local/bin/* #chmod -R 755 /usr/local/omc/htdocs/front 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 # sed -i 's/listen 80;/listen 1080;/g' ${NginxEtcDir}/nginx.conf # sed -i 's/listen \[::\]:80;/listen \[::\]:1080;/g' ${NginxEtcDir}/nginx.conf systemctl daemon-reload systemctl enable restagent.service systemctl enable crontask.service systemctl enable sshsvc.service systemctl enable captrace.service #systemctl enable kvdb.service systemctl stop restagent.service systemctl stop crontask.service systemctl stop sshsvc.service systemctl stop captrace.service # systemctl stop nginx.service systemctl stop kvdb.service systemctl start kvdb.service # systemctl start nginx.service systemctl start captrace.service systemctl start sshsvc.service systemctl start crontask.service systemctl start restagent.service # 卸载时执行 %postun 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 if [ "$1" = "0" ] ; then sudo systemctl stop restagent.service sudo systemctl stop crontask.service sudo systemctl stop sshsvc.service sudo systemctl stop captrace.service #sudo systemctl stop kvdb.service #sudo systemctl stop nginx.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 disable kvdb.service sudo systemctl daemon-reload else sudo systemctl daemon-reload #sudo systemctl stop nginx.service sudo systemctl stop restagent.service sudo systemctl stop crontask.service sudo systemctl stop sshsvc.service sudo systemctl stop captrace.service #sudo systemctl stop kvdb.service #sudo systemctl start nginx.service sudo systemctl start kvdb.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 /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 /usr/local/omc/depends #/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 #/lib/systemd/system/kvdb.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