Compare commits
36 Commits
nbi
...
615000ee68
| Author | SHA1 | Date | |
|---|---|---|---|
| 615000ee68 | |||
| 625b49a6b4 | |||
| 2fe1725288 | |||
| 7ecd7e1602 | |||
| 9dd9a2f391 | |||
| 11e1604683 | |||
| a78fd76e3b | |||
| 22119320d1 | |||
| c4142d894b | |||
| 815a754485 | |||
| 1bbaf9b4d7 | |||
| ac6ef015eb | |||
| 69a54c9243 | |||
| 860b53b06a | |||
| 7831377857 | |||
| dfb1b87772 | |||
| 8c2e7957d9 | |||
| 5902ba2f51 | |||
| 5a822828e6 | |||
| a4ff093c81 | |||
| 41ea7703f8 | |||
| ed650b18db | |||
| ca9b21ffe3 | |||
| 52f038e4e1 | |||
| 761e4ed44a | |||
| 2097f177e0 | |||
| 07868f83dc | |||
| 3837d1d491 | |||
| 5d390fcefc | |||
| d17ae34d37 | |||
| 272ff190c0 | |||
| 66366c39fc | |||
| c86f8e0356 | |||
| 152813bbd4 | |||
| a7e9e6acb7 | |||
| bf6a756b28 |
14
.gitignore
vendored
@@ -12,21 +12,9 @@
|
||||
# Run temp file and dir
|
||||
docs/temp/
|
||||
|
||||
|
||||
# Built Visual Studio Code Extensions
|
||||
*.vsix
|
||||
*.bak
|
||||
# build files
|
||||
build
|
||||
debbuild/etc
|
||||
debbuild/usr
|
||||
debbuild/lib
|
||||
debbuild/22.04/etc
|
||||
debbuild/22.04/usr
|
||||
debbuild/22.04/lib
|
||||
release
|
||||
rpmbuild/RPMS
|
||||
rpmbuild/SOURCES
|
||||
rpmbuild/BUILD
|
||||
rpmbuild/BUILDROOT
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0 [OPTION] deb|badeb|rpm"
|
||||
echo "Usage: $0 [OPTION] deb|rpm"
|
||||
echo
|
||||
echo "Build omc package, option as follow:"
|
||||
echo " deb|badeb|rpm, deb: ubuntu|debian package build by dpkg"
|
||||
echo " badeb: ubuntu|debian package build by dpkg"
|
||||
echo " deb|rpm, deb: ubuntu|debian package build by dpkg"
|
||||
echo " rpm: centos/redhat package, build by rpmbuild"
|
||||
echo " -r, =build root directory build root directory, default directory is $HOME/omc.git"
|
||||
echo " -d dump SQL from database"
|
||||
@@ -16,7 +15,7 @@ pkgtype=""
|
||||
new_args=()
|
||||
# Traverse all parameters
|
||||
for arg in "$@"; do
|
||||
if [[ "$arg" == "deb" || "$arg" == "badeb" || "$arg" == "rpm" ]]; then
|
||||
if [[ "$arg" == "deb" || "$arg" == "rpm" ]]; then
|
||||
pkgtype=$arg
|
||||
else
|
||||
new_args+=("$arg") # Add non pkgtype parameters to a new parameter list
|
||||
@@ -56,7 +55,7 @@ fi
|
||||
ProjectL=omc
|
||||
ProjectU=OMC
|
||||
PROJECT=${ProjectL}
|
||||
VERSION=2.2508.2
|
||||
VERSION=2.2410.2
|
||||
RelDate=`date +%Y%m%d`
|
||||
RelVer=${VERSION}-${RelDate}
|
||||
Ky10Arch=ky10.aarch64
|
||||
@@ -66,27 +65,23 @@ DebPkgName=${ProjectL}-r${RelVer}-ub*.deb
|
||||
EmsBEDir=${GitLocalRoot}/be.ems
|
||||
EmsBuildRoot=${GitLocalRoot}/build.ems
|
||||
RpmArch=`arch`
|
||||
RpmsDir=${EmsBuildRoot}/rpmbuild/RPMS
|
||||
RpmsDir=${EmsBuildRoot}/rpmbuild/RPMS/
|
||||
ReleaseDir=${EmsBuildRoot}/release
|
||||
DumpToolDir=${EmsBEDir}/tools/misc
|
||||
ProjectTag="nbi"
|
||||
ProjectTag=multi-tenancy
|
||||
|
||||
BuildDir=${EmsBuildRoot}/build
|
||||
CustomizedDir=${EmsBuildRoot}/customized
|
||||
BuildOMCDir=${BuildDir}/usr/local/omc
|
||||
BuildOMCBinDir=${BuildOMCDir}/bin
|
||||
BuildOMCEtcDir=${BuildOMCDir}/etc
|
||||
BuildLibDir=${BuildDir}/lib
|
||||
BuildLibSystemDir=${BuildLibDir}/systemd/system
|
||||
DebBuildDir=${EmsBuildRoot}/debbuild
|
||||
DebBuildOMCDir=${EmsBuildRoot}/debbuild/usr/local/omc
|
||||
DebFEBuildDir=${DebBuildOMCDir}/htdocs
|
||||
DebFEBuildDir=${EmsBuildRoot}/debbuild/usr/local/omc/htdocs
|
||||
DebBuild2204Dir=${EmsBuildRoot}/debbuild/22.04
|
||||
DebBuild2204OMCDir=${EmsBuildRoot}/debbuild/22.04/usr/local/omc
|
||||
DebFEBuild2204Dir=${DebBuild2204OMCDir}/htdocs
|
||||
DebFEBuild2204Dir=${EmsBuildRoot}/debbuild/22.04/usr/local/omc/htdocs
|
||||
RpmBuildDir=${EmsBuildRoot}/rpmbuild
|
||||
RpmBuildOMCDir=${RpmBuildDir}/BUILD/usr/local/omc
|
||||
RpmFEBuildDir=${RpmBuildOMCDir}/htdocs
|
||||
RpmFEBuildDir=${RpmBuildDir}/BUILD/usr/local/omc/htdocs
|
||||
OmcInstallDir=/usr/local/omc
|
||||
ConfigEtcDir=${EmsBEDir}/config/etc
|
||||
ConfigSystemdDir=${EmsBEDir}/config/systemd
|
||||
@@ -94,93 +89,36 @@ EmsFEDir=${GitLocalRoot}/fe.ems
|
||||
EmsFEVue3Dir=${GitLocalRoot}/fe.ems.vue3/dist
|
||||
LibDir=${EmsBEDir}/lib
|
||||
RESTAGENT=restagent
|
||||
CRONTASK=crontask
|
||||
SshSvcBin=sshsvc
|
||||
CapTraceBin=captrace
|
||||
Data2htmlBin=data2html
|
||||
NBI_ALARM=nbi_alarm
|
||||
NBI_AGENT=nbi_agent
|
||||
AAAA_AGENT=4a_agent
|
||||
RestagentDir=${EmsBEDir}/${RESTAGENT}
|
||||
CrontaskDir=${EmsBEDir}/${CRONTASK}
|
||||
SshSvcDir=${EmsBEDir}/${SshSvcBin}
|
||||
CapTraceDir=${EmsBEDir}/${CapTraceBin}
|
||||
Data2htmlDir=${EmsBEDir}/${Data2htmlBin}
|
||||
DBSQLSrcDir=${EmsBEDir}/database
|
||||
MiscDir=${EmsBEDir}/misc
|
||||
FrontBuildDir=${BuildOMCDir}/htdocs
|
||||
FrontSrcDir=${EmsBEDir}/front
|
||||
CrontaskSize=27788951
|
||||
RestagentSize=29525312
|
||||
BinWriterDir=${HOME}/bin
|
||||
|
||||
# Get the output of uname -a
|
||||
UnameOutput=$(uname -a)
|
||||
|
||||
# Extract hardware architecture
|
||||
if [[ $UnameOutput =~ "x86_64" ]]; then
|
||||
if [[ ${RpmArch} =~ "x86_64" ]];then
|
||||
RelArch=amd64
|
||||
RpmArch=x86_64
|
||||
elif [[ $UnameOutput =~ "aarch64" ]]; then
|
||||
elif [[ ${RpmArch} =~ "aarch64" ]];then
|
||||
RelArch=arm64
|
||||
RpmArch=aarch64
|
||||
else
|
||||
echo "Unsupported hardware architecture"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
get_os_info() {
|
||||
if [ -f /etc/os-release ]; then
|
||||
. /etc/os-release
|
||||
echo $ID
|
||||
else
|
||||
echo "unknown"
|
||||
fi
|
||||
}
|
||||
|
||||
get_os_version() {
|
||||
if [ -f /etc/os-release ]; then
|
||||
. /etc/os-release
|
||||
echo $VERSION_ID
|
||||
else
|
||||
echo "unknown"
|
||||
fi
|
||||
}
|
||||
|
||||
OSVersion=$(get_os_version)
|
||||
case $(get_os_info) in
|
||||
ubuntu|debian)
|
||||
ptype=deb
|
||||
if [[ "$OSVersion" == "22.04" ]]; then
|
||||
RelOS=ub22
|
||||
DebBuildDir=${DebBuild2204Dir}
|
||||
DebBuildOMCDir=${DebBuild2204OMCDir}
|
||||
DebFEBuildDir=${DebFEBuild2204Dir}
|
||||
elif [[ "$OSVersion" == "18.04" ]]; then
|
||||
RelOS=ub18
|
||||
else
|
||||
echo "Unsupported Ubuntu version: $OSVersion"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
centos|rhel)
|
||||
ptype=rpm
|
||||
RelOS=ct8
|
||||
RpmPkgRename=${ProjectL}-r${RelVer}-${RelOS}-${RelArch}.${ptype}
|
||||
;;
|
||||
openEuler)
|
||||
ptype=rpm
|
||||
majorVersion=${OSVersion:0:2}
|
||||
RelOS=oe${majorVersion}
|
||||
RpmPkgName=${ProjectL}-${RelVer}.${RpmArch}.${ptype}
|
||||
RpmPkgRename=${ProjectL}-r${RelVer}-${RelOS}-${RelArch}.${ptype}
|
||||
;;
|
||||
kylin|anolis)
|
||||
ptype=rpm
|
||||
RelOS=ky
|
||||
RpmPkgName=${ProjectL}-${RelVer}.${RpmArch}.${ptype}
|
||||
RpmPkgRename=${ProjectL}-r${RelVer}-${RelOS}-${RelArch}.${ptype}
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported OS"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
ReleasePkgDir=${ReleaseDir}/"${pkgtype}"s/${RelArch}
|
||||
|
||||
case "${pkgtype}" in
|
||||
rpm)
|
||||
echo "Begin to make ${pkgtype} package ======>"
|
||||
ReleasePkgDir=${ReleaseDir}/rpms/${RelArch}
|
||||
ProcList="restagent sshsvc"
|
||||
ProcList="restagent crontask sshsvc captrace data2html"
|
||||
cd $EmsBEDir
|
||||
for procName in $ProcList;do
|
||||
cd $EmsBEDir/$procName
|
||||
@@ -196,15 +134,24 @@ case "${pkgtype}" in
|
||||
rm -rf ${RpmBuildDir}/BUILD/usr/local/omc/etc/db/*
|
||||
|
||||
cp -rf ${RestagentDir}/${RESTAGENT} ${BuildOMCBinDir}
|
||||
cp -rf ${CrontaskDir}/${CRONTASK} ${BuildOMCBinDir}
|
||||
cp -rf ${SshSvcDir}/${SshSvcBin} ${BuildOMCBinDir}
|
||||
|
||||
cp -rf ${CapTraceDir}/${CapTraceBin} ${BuildOMCBinDir}
|
||||
cp -rf ${Data2htmlDir}/${Data2htmlBin} ${BuildOMCBinDir}
|
||||
# ${BinWriterDir}/binWriter ${BuildOMCBinDir}/${RESTAGENT} ${RestagentSize}
|
||||
# ${BinWriterDir}/binWriter ${BuildOMCBinDir}/${CRONTASK} ${CrontaskSize}
|
||||
# cp -rf ${MiscDir}/ne-hosts ${BuildOMCBinDir}
|
||||
# cp -rf ./nbi/${NBI_ALARM}/bin/${NBI_ALARM} ${BinDir2}
|
||||
# cp -rf ./nbi/${NBI_AGENT}/bin/${NBI_AGENT} ${BinDir2}
|
||||
# cp -rf ./${4A_AGENT}/bin/${4A_AGENT} ${BinDir2}
|
||||
cp -rf ${MiscDir}/* ${BuildOMCBinDir}
|
||||
# rm -rf ${BinDir2}/ne-hosts
|
||||
cp -rf ${ConfigEtcDir}/* ${BuildOMCEtcDir}
|
||||
rm -rf ${BuildOMCEtcDir}/db/*
|
||||
cp -rf ${DBSQLSrcDir}/* ${BuildOMCEtcDir}/db/
|
||||
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/install
|
||||
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgrade
|
||||
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgrade
|
||||
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgvue3
|
||||
#Get SQL from database, overwrite from git
|
||||
if [ "$dumpdb" = "yes" ]; then
|
||||
cd ${DumpToolDir}
|
||||
@@ -216,27 +163,21 @@ case "${pkgtype}" in
|
||||
mkdir -p ${FrontBuildDir}/front
|
||||
cp -rf ${EmsFEVue3Dir}/* ${FrontBuildDir}/front >/dev/null
|
||||
chmod 755 ${BuildOMCBinDir}/*
|
||||
# chmod 755 ${BinDir2}/*
|
||||
cp -rf ${BuildDir}/* ${RpmBuildDir}/BUILD/
|
||||
cp -rf ${CustomizedDir}/agt.d ${RpmBuildOMCDir}/static
|
||||
cp -rf ${CustomizedDir}/omc.d ${RpmBuildOMCDir}/static
|
||||
#cp -rf ${BuildDir}/nginx ${RpmBuildDir}/BUILD/etc/
|
||||
#cp -rf ${BuildDir}/systemd ${RpmBuildDir}/BUILD/lib/
|
||||
cd ${RpmBuildDir}
|
||||
rpmbuild -bb -D "_topdir ${RpmBuildDir}" ${RpmBuildDir}/SPECS/omc.spec
|
||||
|
||||
if [ ! ProjectTag = "" ]; then
|
||||
RpmPkgRename=${ProjectL}-r${RelVer}-${RelOS}-${RelArch}-${ProjectTag}.${ptype}
|
||||
fi
|
||||
|
||||
|
||||
mv -f $RpmsDir/$RpmArch/$RpmPkgName ${ReleasePkgDir}/$RpmPkgRename
|
||||
cd ${ReleasePkgDir}
|
||||
rm -f omc-md5sum.txt
|
||||
# rpm --addsign *.rpm
|
||||
md5sum $RpmPkgRename >omc-md5sum.txt
|
||||
echo "Finish to make ${pkgtype} package <======"
|
||||
;;
|
||||
deb)
|
||||
echo "Begin to make ${pkgtype} package ======>"
|
||||
ReleasePkgDir=${ReleaseDir}/debs/${RelArch}
|
||||
ProcList="restagent sshsvc"
|
||||
ProcList="restagent crontask sshsvc captrace data2html"
|
||||
cd $EmsBEDir
|
||||
for procName in $ProcList;do
|
||||
cd $EmsBEDir/$procName
|
||||
@@ -244,10 +185,24 @@ case "${pkgtype}" in
|
||||
make
|
||||
done
|
||||
|
||||
DebPkgFile=${ProjectL}-r${RelVer}-${RelOS}-${RelArch}.${ptype}
|
||||
if [ ! $ProjectTag = "" ]; then
|
||||
DebPkgFile=${ProjectL}-r${RelVer}-${RelOS}-${RelArch}-${ProjectTag}.${ptype}
|
||||
fi
|
||||
VersionID=`grep VERSION_ID /etc/os-release`
|
||||
if [[ ${VersionID} =~ 'VERSION_ID="22.04"' ]]; then
|
||||
DebBuildDir=${DebBuild2204Dir}
|
||||
DebFEBuildDir=${DebFEBuild2204Dir}
|
||||
#DebPkgFile=${PROJECT}-${VERSION}-22.04-${Release).${PLATFORM).deb
|
||||
DebPkgFile=${PROJECT}-r${VERSION}-${RelDate}-ub22.deb
|
||||
if [ ! $ProjectTag = "" ]; then
|
||||
DebPkgFile=${PROJECT}-r${VERSION}-${RelDate}-ub22-${ProjectTag}.deb
|
||||
fi
|
||||
elif [[ ${VersionID} =~ 'VERSION_ID="18.04"' ]]; then
|
||||
DebPkgFile=${PROJECT}-r${VERSION}-${RelDate}-ub18.deb
|
||||
if [ ! $ProjectTag = "" ]; then
|
||||
DebPkgFile=${PROJECT}-r${VERSION}-${RelDate}-ub18-${ProjectTag}.deb
|
||||
fi
|
||||
else
|
||||
echo "Invalid OS release: ${VersionID}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd ${EmsBEDir}
|
||||
|
||||
@@ -256,17 +211,19 @@ case "${pkgtype}" in
|
||||
rm -rf ${FrontBuildDir}/front/*
|
||||
rm -rf ${DebFEBuildDir}/front/*
|
||||
rm -rf ${DebBuildDir}/usr/local/omc/etc/db/*
|
||||
rm -rf ${DebBuildOMCDir}/static/*
|
||||
|
||||
cp -rf ${RestagentDir}/${RESTAGENT} ${BuildOMCBinDir}
|
||||
cp -rf ${CrontaskDir}/${CRONTASK} ${BuildOMCBinDir}
|
||||
cp -rf ${SshSvcDir}/${SshSvcBin} ${BuildOMCBinDir}
|
||||
|
||||
cp -rf ${CapTraceDir}/${CapTraceBin} ${BuildOMCBinDir}
|
||||
cp -rf ${Data2htmlDir}/${Data2htmlBin} ${BuildOMCBinDir}
|
||||
cp -rf ${MiscDir}/* ${BuildOMCBinDir}
|
||||
cp -rf ${ConfigEtcDir}/* ${BuildOMCEtcDir}
|
||||
rm -rf ${BuildOMCEtcDir}/db/*
|
||||
cp -rf ${DBSQLSrcDir}/* ${BuildOMCEtcDir}/db/
|
||||
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/install
|
||||
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgrade
|
||||
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgvue3
|
||||
#Get SQL from database, overwrite from git
|
||||
if [ "${dumpdb}" = "yes" ]; then
|
||||
cd ${DumpToolDir}
|
||||
@@ -280,82 +237,18 @@ case "${pkgtype}" in
|
||||
chmod 755 ${DebBuildDir}/DEBIAN/postinst
|
||||
chmod 755 ${DebBuildDir}/DEBIAN/postrm
|
||||
cp -rf ${BuildDir}/* ${DebBuildDir}/
|
||||
cp -rf ${CustomizedDir}/agt.d ${DebBuildOMCDir}/static
|
||||
cp -rf ${CustomizedDir}/omc.d ${DebBuildOMCDir}/static
|
||||
#cp -rf ${BuildDir}/nginx/* ${DebBuildDir}/etc/nginx/conf.d
|
||||
#cp -rf ${BuildDir}/systemd/*.service ${DebBuildDir}/lib/systemd/system/
|
||||
chmod +x ${DebBuildDir}/usr/local/omc/bin/*
|
||||
sed -i "s/YYYYMMDD/${RelDate}/g" ${DebBuildDir}/DEBIAN/control
|
||||
sed -i "s/Architecture: amd64/Architecture: ${RelArch}/g" ${DebBuildDir}/DEBIAN/control
|
||||
perl -0777 -i -pe 's/ne:\n user: root/ne:\n user: omcuser/g' ${DebBuildDir}/usr/local/omc/etc/default/restconf.yaml
|
||||
dpkg -b ${DebBuildDir} ${ReleasePkgDir}/${DebPkgFile}
|
||||
|
||||
cd ${ReleasePkgDir}
|
||||
rm -f omc-md5sum.txt
|
||||
# rpm --addsign *.rpm
|
||||
md5sum ${DebPkgName} >omc-md5sum.txt
|
||||
echo "Finish to make ${pkgtype} package <======="
|
||||
md5sum ${DebPkgName} >omc-md5sum.txt
|
||||
;;
|
||||
badeb)
|
||||
echo "Begin to make ${pkgtype} package ======>"
|
||||
ReleasePkgDir=${ReleaseDir}/debs/${RelArch}
|
||||
ProcList="restagent sshsvc"
|
||||
cd $EmsBEDir
|
||||
for procName in $ProcList;do
|
||||
cd $EmsBEDir/$procName
|
||||
echo "Make $procName ..."
|
||||
make
|
||||
done
|
||||
|
||||
DebPkgFile=${ProjectL}-r${RelVer}-${RelOS}-${RelArch}-ba.deb
|
||||
|
||||
cd ${EmsBEDir}
|
||||
|
||||
#make deb
|
||||
# clear build cache
|
||||
rm -rf ${FrontBuildDir}/front/*
|
||||
rm -rf ${DebFEBuildDir}/front/*
|
||||
rm -rf ${DebBuildDir}/usr/local/omc/etc/db/*
|
||||
rm -rf ${DebBuildOMCDir}/static/*
|
||||
|
||||
cp -rf ${RestagentDir}/${RESTAGENT} ${BuildOMCBinDir}
|
||||
cp -rf ${SshSvcDir}/${SshSvcBin} ${BuildOMCBinDir}
|
||||
|
||||
cp -rf ${MiscDir}/* ${BuildOMCBinDir}
|
||||
cp -rf ${ConfigEtcDir}/* ${BuildOMCEtcDir}
|
||||
rm -rf ${BuildOMCEtcDir}/db/*
|
||||
cp -rf ${DBSQLSrcDir}/* ${BuildOMCEtcDir}/db/
|
||||
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/install
|
||||
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgrade
|
||||
|
||||
#Get SQL from database, overwrite from git
|
||||
if [ "${dumpdb}" = "yes" ]; then
|
||||
cd ${DumpToolDir}
|
||||
chmod +x ${DumpToolDir}/dumpsql.sh
|
||||
${DumpToolDir}/dumpsql.sh
|
||||
fi
|
||||
cp -rf ${ConfigSystemdDir}/* ${BuildLibSystemDir}
|
||||
cp -rf ${EmsFEVue3Dir}/* ${FrontBuildDir}/front >/dev/null
|
||||
chmod 755 ${BuildOMCBinDir}/*
|
||||
chmod 755 ${DebBuildDir}/DEBIAN/preinst
|
||||
chmod 755 ${DebBuildDir}/DEBIAN/postinst
|
||||
chmod 755 ${DebBuildDir}/DEBIAN/postrm
|
||||
cp -rf ${BuildDir}/* ${DebBuildDir}/
|
||||
cp -rf ${CustomizedDir}/ba.d ${DebBuildOMCDir}/static
|
||||
# replace Chinese character
|
||||
find "${DebBuildOMCDir}/etc/db" -type f -name '*.sql' -exec sed -i 's/[一-龥()“”,。?!]~·]//g' {} +
|
||||
echo "Replace all chinese character."
|
||||
chmod +x ${DebBuildDir}/usr/local/omc/bin
|
||||
sed -i "s/YYYYMMDD/${RelDate}/g" ${DebBuildDir}/DEBIAN/control
|
||||
sed -i "s/Architecture: amd64/Architecture: ${RelArch}/g" ${DebBuildDir}/DEBIAN/control
|
||||
perl -0777 -i -pe 's/ne:\n user: root/ne:\n user: omcuser/g' ${DebBuildDir}/usr/local/omc/etc/default/restconf.yaml
|
||||
dpkg -b ${DebBuildDir} ${ReleasePkgDir}/${DebPkgFile}
|
||||
|
||||
cd ${ReleasePkgDir}
|
||||
rm -f omc-md5sum.txt
|
||||
md5sum ${DebPkgName} >omc-md5sum.txt
|
||||
echo "Finish to make ${pkgtype} package <======"
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
exit 4
|
||||
44
build/usr/local/omc/etc/default/crontask.yaml
Normal file
@@ -0,0 +1,44 @@
|
||||
# file: log file name
|
||||
# level: /trace/debug/info/warn/error/fatal, default: debug
|
||||
# duration: saved days, default is 30 days
|
||||
logger:
|
||||
file: /usr/local/omc/log/crontask.log
|
||||
level: trace
|
||||
duration: 24
|
||||
count: 90
|
||||
|
||||
omc:
|
||||
name: RJ_OMC_S001
|
||||
hosturi: http://127.0.0.1:3030
|
||||
hostno: S001
|
||||
province: BJ
|
||||
netabbr: HX
|
||||
vendor: RJ
|
||||
|
||||
tasks:
|
||||
file: /usr/local/omc/etc/tasks.yaml
|
||||
|
||||
database:
|
||||
type: mysql
|
||||
user: root
|
||||
password: 1000omc@kp!
|
||||
host: 127.0.0.1
|
||||
port: 33066
|
||||
name: tenants_db
|
||||
backup: /usr/local/omc/database
|
||||
|
||||
# northbound interface, cm/pm
|
||||
# duration(day): saved days
|
||||
# zipPeriods(day): periods of zip pm data file
|
||||
northbound:
|
||||
cm:
|
||||
cfgfiledir: /usr/local/omc/etc/cm
|
||||
xmlfiledir: /opt/omc/ftp/cm
|
||||
version: V1.0.1
|
||||
duration: 30
|
||||
pm:
|
||||
cfgfiledir: /usr/local/omc/etc/pm
|
||||
xmlfiledir: /opt/omc/ftp/pm
|
||||
version: V1.0.1
|
||||
duration: 30
|
||||
zipPeriods: 1
|
||||
111
build/usr/local/omc/etc/default/restconf.yaml
Normal file
@@ -0,0 +1,111 @@
|
||||
# file: log file name
|
||||
# level: /trace/debug/info/warn/error/fatal, default: debug
|
||||
# duration: rotation time with xx hours, example: 1/12/24 hours
|
||||
# count: rotation count of log, default is 30 rotation
|
||||
logger:
|
||||
file: /usr/local/omc/log/restagent.log
|
||||
level: debug
|
||||
duration: 24
|
||||
count: 90
|
||||
|
||||
# rest agent listen ipv4/v6 and port, support multiple routines
|
||||
# ip: 0.0.0.0 or ::0, support IPv4/v6
|
||||
rest:
|
||||
- ipv4: 0.0.0.0
|
||||
ipv6:
|
||||
port: 3030
|
||||
- ipv4:
|
||||
ipv6: ::0
|
||||
port: 6060
|
||||
|
||||
database:
|
||||
type: mysql
|
||||
user: root
|
||||
password: 1000omc@kp!
|
||||
host: 127.0.0.1
|
||||
port: 33066
|
||||
name: tenants_db
|
||||
backup: /usr/loal/omc/database
|
||||
|
||||
mml:
|
||||
port: 4100
|
||||
sleep: 200
|
||||
user: admin
|
||||
password: admin
|
||||
|
||||
ne:
|
||||
user: root
|
||||
etcdir: /usr/local/etc
|
||||
bindir: /usr/local/bin
|
||||
omcdir: /usr/local/omc
|
||||
licensedir: /usr/local/etc/{neType}/license
|
||||
|
||||
# chk2ne: true/false, if put OmcNeConfig parameters to NE
|
||||
omc:
|
||||
uriPrefix: /api/rest/oam
|
||||
neType: OMC
|
||||
neId: 001
|
||||
rmUID: 1100RJHX1OMC001
|
||||
neName: OMC
|
||||
province: BJ
|
||||
vendor: RJ
|
||||
dn: 4600
|
||||
chk2ne: false
|
||||
sn: 13750650
|
||||
checksign: false
|
||||
backup: /usr/local/omc/backup
|
||||
upload: /usr/local/omc/upload
|
||||
frontUpload: /usr/local/omc/htdocs/front/upload
|
||||
software: /usr/local/omc/software
|
||||
license: /usr/local/omc/license
|
||||
gtpUri: gtp:192.168.2.119:2152
|
||||
checkContentType: false
|
||||
testMode: true
|
||||
rbacMode: true
|
||||
|
||||
# Alarm module setting
|
||||
# Forward interface:
|
||||
# email/sms
|
||||
alarm:
|
||||
forwardAlarm: true
|
||||
email:
|
||||
smtp: smtp@ruijie.com.cn
|
||||
port: 25
|
||||
user: smtpuser
|
||||
password: smtpuser@omc
|
||||
sms:
|
||||
apiURL: http://smsc.ruijie.com.cn/
|
||||
accessKeyID: xxxx
|
||||
accessKeySecret: xxxx
|
||||
signName: Ruijie SMSC
|
||||
templateCode: 1000
|
||||
|
||||
#User authorized information
|
||||
# crypt: mysql/md5/bcrypt
|
||||
# token: true/false to check accessToken
|
||||
# expires for session, unit: second
|
||||
# Support single/multiple session of user
|
||||
auth:
|
||||
crypt: bcrypt
|
||||
token: true
|
||||
expires: 1800
|
||||
session: multiple
|
||||
|
||||
# Parameter for limit number
|
||||
# rmuid_maxnum: the max number of rmUID, default: 50
|
||||
# alarmid_maxnum: the max number of AlarmID, default: 50
|
||||
# pmid_maxnum: the max number of pmID, default: 50
|
||||
# subid_maxnum: the max number of subscription ID, default: 20
|
||||
# uri_maxlen: the max length of uri, default: 8192
|
||||
# rmuid_regexp: regexp pattern of rmUID
|
||||
params:
|
||||
rmuidmaxnum: 50
|
||||
alarmidmaxnum: 50
|
||||
pmidmaxnum: 50
|
||||
subidmaxnum: 20
|
||||
urimaxlen: 2100000
|
||||
rmuidregexp: "[0-9]{4}[A-Z]{2}[A-Z]{2}[0-9A-Z]{1}[0-9A-Z]{3}[0-9A-Z]{1,16}"
|
||||
|
||||
testConfig:
|
||||
enabled: true
|
||||
file: /usr/local/omc/etc/testconfig.yaml
|
||||
@@ -4,7 +4,7 @@
|
||||
# count: rotation count of log, default is 30 rotation
|
||||
logger:
|
||||
file: /usr/local/omc/log/sshsvc.log
|
||||
level: warn
|
||||
level: debug
|
||||
duration: 24
|
||||
count: 30
|
||||
|
||||
@@ -23,59 +23,22 @@ logmml:
|
||||
# session: single/multiple session for one user
|
||||
sshd:
|
||||
listenAddr: 0.0.0.0
|
||||
listenPort: 32222
|
||||
listenPort: 2222
|
||||
privateKey: /usr/local/omc/.ssh/id_rsa
|
||||
maxConnNum: 2
|
||||
maxConnNum: 20
|
||||
timeout: 1800
|
||||
session: multiple
|
||||
mmlHome: /usr/local/omc/mmlhome
|
||||
userName: manager
|
||||
password: pass123
|
||||
authType: local
|
||||
tagNE: omc
|
||||
|
||||
# authType: local/omc
|
||||
telnetServer:
|
||||
listenAddr: 0.0.0.0
|
||||
listenPort: 32323
|
||||
maxConnNum: 2
|
||||
timeout: 1800
|
||||
session: multiple
|
||||
mmlHome: /usr/local/omc/mmlhome
|
||||
userName: manager
|
||||
password: pass123
|
||||
authType: local
|
||||
tagNE: omc
|
||||
|
||||
# authproto: NoAuth/MD5/SHA
|
||||
# privProto: NoPriv/DES/AES/AES192/AES256
|
||||
snmpServer:
|
||||
listenAddr: '[::]'
|
||||
listenPort: 34957
|
||||
userName: manager
|
||||
authPass: pass123
|
||||
authproto: MD5
|
||||
privPass: "3F2A1B4C5D6E7F8A9B0C1D2E3F4A5B6C7D8E9F0A1B2C3D4E"
|
||||
privProto: DES
|
||||
engineID: "8000000004323030313a6462383a3a39313636"
|
||||
trapPort: 34958
|
||||
trapListen: false
|
||||
trapBool: false
|
||||
trapTick: 60
|
||||
timeOut: 5
|
||||
trapTarget: ""
|
||||
|
||||
database:
|
||||
type: mysql
|
||||
user: root
|
||||
password: 1000omc@kp!
|
||||
host: 127.0.0.1
|
||||
port: 33066
|
||||
name: omc_db
|
||||
connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True
|
||||
name: tenants_db
|
||||
|
||||
omc:
|
||||
httpUri: http://127.0.0.1:33030
|
||||
httpUri: http://127.0.0.1:3030
|
||||
userCrypt: bcrypt
|
||||
|
||||
ne:
|
||||
|
||||
171
build/usr/local/omc/etc/default/tasks.yaml
Normal file
@@ -0,0 +1,171 @@
|
||||
# example:
|
||||
# tasks:
|
||||
# - name: test # task comment
|
||||
# uri: # restful uri
|
||||
# params: # params of url
|
||||
# interval: 30 # do sometion in the interval
|
||||
# unit: Seconds #Seconds/Minutes/Hours/Days/Weeks, Monday/Tuesday/.../Sunday,
|
||||
# at: 00:10:00 # do at time such as xx:xx:xx
|
||||
# do: HelloWorldTask # (Do what: callback function)
|
||||
#
|
||||
# Attention: must restart crontask after modified this file
|
||||
#
|
||||
tasks:
|
||||
- name: test # task comment
|
||||
status: Active #active/inactive
|
||||
uri: # restful uri
|
||||
params: # params of http url
|
||||
body: # body of http request
|
||||
interval: 60 # do sometion in the interval
|
||||
unit: Seconds #Seconds/Minutes/Hours/Days/Weeks, Monday/Tuesday/.../Sunday,
|
||||
at: 00:10:00 # do at time such as xx:xx:xx when unit such as Day/Days/Mondays...
|
||||
do: TaskHelloWorld # (Do what: callback function)
|
||||
- name: clear expired history alarm
|
||||
uri: /api/rest/databaseManagement/v1/tenants_db/alarm
|
||||
params: WHERE=now()+>+ADDDATE(event_time,+interval+(SELECT+`value`+FROM+config+WHERE+config_tag='historyDuration')+day)+and+alarm_status='0'
|
||||
interval: 1
|
||||
unit: Days
|
||||
at: 00:10:00
|
||||
do: TaskDeleteExpiredRecord
|
||||
- name: clear deleted custom pm kpi
|
||||
uri: /api/rest/databaseManagement/v1/tenants_db/pm_custom_title
|
||||
params: WHERE=now()+>+ADDDATE(update_time,+interval+(SELECT+`value`+FROM+config+WHERE+config_tag='keepPMCKpi')+day)+and+status='Deleted'
|
||||
interval: 1
|
||||
unit: Days
|
||||
at: 00:15:00
|
||||
do: TaskDeleteExpiredRecord
|
||||
- name: update expired user session
|
||||
uri: /api/rest/databaseManagement/v1/tenants_db/session
|
||||
params: WHERE=NOW()+>+ADDDATE(shake_time,+interval+expires+second)+and+status='online'
|
||||
body: '{"session":{"status":"offline"}}'
|
||||
interval: 30
|
||||
unit: Seconds
|
||||
at:
|
||||
do: TaskUpdateTable
|
||||
- name: clear expired log
|
||||
uri:
|
||||
params:
|
||||
interval: 1
|
||||
unit: Days
|
||||
at: 00:50:00
|
||||
do: TaskDeleteExpiredRecord
|
||||
- name: Backup measure data
|
||||
uri: /api/rest/databaseManagement/v1/tenants_db/measure_data
|
||||
params: SQL=select+*+into+outfile+'%s'+fields+terminated+by+','+escaped+by+''+optionally+enclosed+by+''+lines+terminated+by+'\n'+from+(select+'id','date','task_id','ne_name','rm_uid','ne_type','granul_option','kpi_code','kpi_id','kpi_ext','start_time','end_time','value','timestamp'+union+select+id,date,task_id,ne_name,rm_uid,ne_type,granul_option,kpi_code,kpi_id,kpi_ext,start_time,end_time,value,timestamp+from+measure_data)+b
|
||||
interval: 1
|
||||
unit: Days
|
||||
at: 00:20:00
|
||||
do: TaskDBBackupCSVGetBySQL
|
||||
- name: Backup operation log
|
||||
uri: /api/rest/databaseManagement/v1/tenants_db/operation_log
|
||||
params: SQL=select+*+into+outfile+'%s'+fields+terminated+by+','+escaped+by+''+optionally+enclosed+by+''+lines+terminated+by+'\n'+from+(select+'op_id','account_name','op_ip','subsys_tag','op_type','op_content','op_result','begin_time','end_time','vnf_flag','log_time'+union+select+op_id,account_name,op_ip,subsys_tag,op_type,op_content,op_result,begin_time,end_time,vnf_flag,log_time+from+operation_log)+b
|
||||
interval: 1
|
||||
unit: Days
|
||||
at: 00:26:00
|
||||
do: TaskDBBackupCSVGetBySQL
|
||||
- name: Backup security log
|
||||
uri: /api/rest/databaseManagement/v1/tenants_db/security_log
|
||||
params: SQL=select+*+into+outfile+'%s'+fields+terminated+by+','+escaped+by+''+optionally+enclosed+by+''+lines+terminated+by+'\n'+from+(select+'id','account_name','account_type','op_ip','op_type','op_content','op_result','op_time'+union+select+id,account_name,account_type,op_ip,op_type,op_content,op_result,op_time+from+security_log)+b
|
||||
interval: 1
|
||||
unit: Days
|
||||
at: 00:28:00
|
||||
do: TaskDBBackupCSVGetBySQL
|
||||
- name: Backup alarm log
|
||||
uri: /api/rest/databaseManagement/v1/tenants_db/alarm_log
|
||||
params: SQL=select+*+into+outfile+'%s'+fields+terminated+by+','+escaped+by+''+optionally+enclosed+by+''+lines+terminated+by+'\n'+from+(select+'id','ne_type','ne_id','alarm_seq','alarm_id','alarm_code','alarm_status','event_time','log_time'+union+select+id,ne_type,ne_id,alarm_seq,alarm_id,alarm_code,alarm_status,event_time,log_time+from+alarm_log)+b
|
||||
interval: 1
|
||||
unit: Days
|
||||
at: 00:30:00
|
||||
do: TaskDBBackupCSVGetBySQL
|
||||
- name: handshake to NF
|
||||
status: Active
|
||||
uri: /api/rest/systemManagement/v1/elementType/%s/objectType/systemState
|
||||
params:
|
||||
interval: 10
|
||||
unit: Seconds
|
||||
at:
|
||||
do: TaskHandShakeToNF
|
||||
- name: Export CM from NF
|
||||
uri: /api/rest/systemManagement/v1/elementType/%s/objectType/cm
|
||||
params: ne_id=%s
|
||||
interval: 1
|
||||
unit: Days
|
||||
at: 00:15
|
||||
do: TaskExportCmFromNF
|
||||
- name: Generate NRM xml file
|
||||
uri:
|
||||
params:
|
||||
interval: 1
|
||||
unit: Day
|
||||
at: 00:00,06:00,12:00,18:00
|
||||
do: GenCmXmlFile
|
||||
- name: Task of Generate measure threshold alarm
|
||||
status: Active
|
||||
uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms
|
||||
params: RJHXEMSPM10200
|
||||
interval: 10
|
||||
unit: Seconds
|
||||
at:
|
||||
do: TaskGenMeasureThresholdAlarm
|
||||
- name: Task of Generate license alarm
|
||||
status: Inactive
|
||||
uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms
|
||||
params: RJHXEMSCM10100
|
||||
interval: 1
|
||||
unit: Days
|
||||
at: 00:30
|
||||
do: TaskGenLicenseAlarm
|
||||
- name: Task of Generate NE system state alarm
|
||||
status: Active
|
||||
uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms
|
||||
params: RJHXEMSSM10000
|
||||
interval: 5
|
||||
unit: Seconds
|
||||
at:
|
||||
do: TaskGenNeStateAlarm
|
||||
- name: Task of Generate Measure Report Timeout
|
||||
status: Active
|
||||
uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms
|
||||
params: RJHXEMSPM10201
|
||||
interval: 10
|
||||
unit: Seconds
|
||||
at:
|
||||
do: TaskGenMeasureReportTimeoutAlarm
|
||||
- name: Monitor proces list and write system log
|
||||
uri: /api/rest/databaseManagement/v1/tenants_db/system_log
|
||||
params:
|
||||
body:
|
||||
interval: 10
|
||||
unit: Seconds
|
||||
at:
|
||||
do: TaskWriteSystemLog
|
||||
- name: Copy log to /opt/omc/ftp/log
|
||||
uri:
|
||||
params: cp -rf /usr/local/omc/database/*.csv /opt/omc/ftp/log
|
||||
interval: 10
|
||||
unit: Minutes
|
||||
at:
|
||||
do: TaskRunShellCommand
|
||||
# - name: Import CM to NF
|
||||
# uri: /api/rest/systemManagement/v1/elementType/udm/objectType/cm
|
||||
# params: ne_id=SZ_01
|
||||
# interval: 15
|
||||
# unit: Seconds
|
||||
# at:
|
||||
# do: TaskImportCmToNF
|
||||
crontab:
|
||||
# - name: 每隔1分钟执行
|
||||
# tab: 0 */1 * * * ? // crontab: rule like linux crontab
|
||||
# do: CronHelloWorldTask // function name to call
|
||||
# params:
|
||||
- name: Generate PM xml file
|
||||
status: Active
|
||||
tab: 5,20,35,50 * * * *
|
||||
do: GenPmXmlFile
|
||||
uri: this is uri
|
||||
params: Generating PM xml file
|
||||
# - name: Import CM to NF
|
||||
# tab: 0 * * * * *
|
||||
# do: TaskImportCmToNF
|
||||
# uri: /api/rest/systemManagement/v1/elementType/udm/objectType/cm
|
||||
# params: ne_id=SZ_01
|
||||
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB |
BIN
build/usr/local/omc/static/ba.d/logo/zh_brand.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
build/usr/local/omc/static/ba.d/logo/zh_icon.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 114 B |
|
Before Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 216 KiB |
|
Before Width: | Height: | Size: 216 KiB |
@@ -1,2 +0,0 @@
|
||||
export default {
|
||||
};
|
||||
@@ -1,20 +0,0 @@
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
--
|
||||
REPLACE INTO `sys_config` VALUES (6, 'config.sys.officialUrl', 'sys.officialUrl', '#', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.officialUrlRemark');
|
||||
REPLACE INTO `sys_config` VALUES (106, 'config.sys.title', 'sys.title', 'config.sys.titleValue', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.titleRemark');
|
||||
REPLACE INTO `sys_config` VALUES (107, 'config.sys.copyright', 'sys.copyright', 'config.sys.copyrightValue', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.copyrightRemark');
|
||||
REPLACE INTO `sys_config` VALUES (108, 'config.sys.i18nOpen', 'sys.i18n.open', 'true', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.i18nOpenRemark');
|
||||
REPLACE INTO `sys_config` VALUES (109, 'config.sys.i18nDefault', 'sys.i18n.default', 'en_US', 'Y', 'supervisor', 1700000000000, NULL, 0, 'config.sys.i18nDefaultRemark');
|
||||
|
||||
--
|
||||
REPLACE INTO `sys_dict_data` VALUES (1660, 1660, 'config.sys.titleValue', 'OMC', 'i18n_zh', NULL, NULL, '1', 'supervisor', 1700000000000, NULL, 0, NULL);
|
||||
REPLACE INTO `sys_dict_data` VALUES (1661, 1661, 'config.sys.copyrightValue', 'Copyright ©2024', 'i18n_zh', NULL, NULL, '1', 'supervisor', 1700000000000, NULL, 0, NULL);
|
||||
REPLACE INTO `sys_dict_data` VALUES (3660, 3660, 'config.sys.titleValue', 'OMC', 'i18n_en', NULL, NULL, '1', 'supervisor', 1700000000000, NULL, 0, NULL);
|
||||
REPLACE INTO `sys_dict_data` VALUES (3661, 3661, 'config.sys.copyrightValue', 'Copyright ©2024', 'i18n_en', NULL, NULL, '1', 'supervisor', 1700000000000, NULL, 0, NULL);
|
||||
|
||||
-- set internationalization switching to ON
|
||||
-- REPLACE INTO `omc_db`.`sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 2122);
|
||||
UPDATE `sys_menu` SET `status` = '1' WHERE `menu_id` = 2122;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
Before Width: | Height: | Size: 114 B |
|
Before Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
@@ -1,5 +1,5 @@
|
||||
Package: OMC
|
||||
Version: 2.2508.2-YYYYMMDD
|
||||
Version: 2.2410.2-YYYYMMDD
|
||||
Section: AGrandTech
|
||||
Prioritt: optional
|
||||
Architecture: amd64
|
||||
|
||||
85
debbuild/22.04/DEBIAN/postinst
Executable file → Normal file
@@ -4,25 +4,38 @@ OMCRootDir=/usr/local/omc
|
||||
SystemdRootDir=/lib/systemd/system
|
||||
OMCEtcDir=${OMCRootDir}/etc
|
||||
FERootDir=${OMCRootDir}/htdocs/front
|
||||
OmcBinDir=${OMCRootDir}/bin
|
||||
X86Lib64Dir=/lib/x86_64-linux-gnu
|
||||
OMCBinDir=${OMCRootDir}/bin
|
||||
OMCStaticDir=${OMCRootDir}/static
|
||||
UsrLocalBinDir=/usr/local/bin
|
||||
OmcDaemon=omcd
|
||||
OMCDaemon=omcd
|
||||
NginxEtcDir=/etc/nginx
|
||||
NginxConfDir=${NginxEtcDir}/conf.d
|
||||
CFileList=$(ls ${OMCEtcDir}/default)
|
||||
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 ""
|
||||
echo "* To start/stop/restart/status omc service, please run:"
|
||||
echo " sudo systemctl start/stop/restart/status restagent.service"
|
||||
echo " sudo systemctl start/stop/restart/status crontask.service"
|
||||
echo " sudo systemctl start/stop/restart/status sshsvc.service"
|
||||
echo " sudo systemctl start/stop/restart/status captrace.service"
|
||||
echo " or run: "
|
||||
echo " sudo /usr/local/omc/bin/omcsvc.sh start/stop/restart/status"
|
||||
echo ""
|
||||
|
||||
cd ${X86Lib64Dir}
|
||||
chmod +rx libwireshark.so.15.0.12
|
||||
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
|
||||
chmod +rx libwiretap.so.12.0.12
|
||||
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
|
||||
chmod +rx libwsutil.so.13.1.0
|
||||
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
|
||||
if [ ! -e ${OMCDaemon} ]; then ln -s ${OMCBinDir}/omcsvc.sh ${OMCDaemon}; fi
|
||||
|
||||
chmod +rx ${OMCRootDir}/bin/*
|
||||
chmod +rx ${OMCRootDir}/*
|
||||
@@ -32,7 +45,7 @@ chmod -R 755 ${OMCRootDir}/htdocs/front
|
||||
for CFile in ${CFileList}; do
|
||||
if [ ! -e "${OMCEtcDir}/${CFile}" ]; then
|
||||
cp -f ${OMCEtcDir}/default/${CFile} ${OMCEtcDir}
|
||||
else
|
||||
else
|
||||
# mv -f ${OMCEtcDir}/${CFile} ${OMCEtcDir}/${CFile}.bak
|
||||
# cp -f ${OMCEtcDir}/default/${CFile} ${OMCEtcDir}
|
||||
if [ -e "${OMCBinDir}/upgconf.sh" ]; then
|
||||
@@ -41,6 +54,62 @@ for CFile in ${CFileList}; do
|
||||
fi
|
||||
done
|
||||
|
||||
# # Install redis db if not exist /usr/local/db
|
||||
# if [ ! -e "${RedisRootDir}/bin/kvdb-server" ]; then
|
||||
# # if [ ! -e "${RedisRootDir}" ]; then
|
||||
# # mkdir -p ${RedisRootDir}
|
||||
# # fi
|
||||
# # stop old adb service
|
||||
# if [ -e "${RedisOldRootDir}/bin/redis-server" ] && [ -e "${SystemdRootDir}/adb.service" ]; then
|
||||
# systemctl stop adb.service
|
||||
# systemctl disable adb.service
|
||||
# fi
|
||||
# # stop adb service
|
||||
# if [ -e "${UsrLocalBinDir}/adb-server" ] && [ -e "${SystemdRootDir}/adb.service" ]; then
|
||||
# systemctl stop adb.service
|
||||
# systemctl disable adb.service
|
||||
# fi
|
||||
# cp -rf ${DependsRootDir}/kvdb/* /
|
||||
# chmod +rx ${RedisRootDir}/bin/kvdb*
|
||||
# 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
|
||||
|
||||
# # copy the old adb dump.rdb
|
||||
# if [ -e "${RedisOldRootDir}/bin/conf/dump.rdb" ] && [ ! -e "${RedisRootDir}/etc/kvdb/dump.rdb" ]; then
|
||||
# cp -f ${RedisOldRootDir}/bin/conf/dump.rdb ${RedisRootDir}/etc/kvdb/;
|
||||
# mv -f ${RedisRootDir}/db ${RedisRootDir}/adb.old
|
||||
# fi
|
||||
# # copy the adb dump.rdb
|
||||
# if [ -e "${RedisRootDir}/etc/adb/dump.rdb" ] && [ ! -e "${RedisRootDir}/etc/kvdb/dump.rdb" ]; then
|
||||
# cp -f ${RedisRootDir}/etc/adb/dump.rdb ${RedisRootDir}/etc/kvdb/;
|
||||
# mv -f ${RedisRootDir}/etc/adb ${RedisRootDir}/etc/adb.old
|
||||
# fi
|
||||
# # cp -f ${DependsRootDir}/systemd/kvdb.service ${SystemdRootDir}
|
||||
# else
|
||||
# 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
|
||||
# fi
|
||||
|
||||
if [ ! -e "${FERootDir}/config.js" ]; then
|
||||
cp ${FERootDir}/default/config.js ${FERootDir};
|
||||
fi
|
||||
@@ -63,13 +132,13 @@ if [ ! -e "${NginxConfDir}/omc.conf" ]; then
|
||||
cp -f ${OMCEtcDir}/nginx/omc.conf ${NginxConfDir};
|
||||
fi
|
||||
|
||||
systemctl daemon-reload
|
||||
|
||||
# disable auto upgrade
|
||||
systemctl disable --now unattended-upgrades
|
||||
|
||||
systemctl enable restagent.service
|
||||
systemctl enable crontask.service
|
||||
systemctl enable sshsvc.service
|
||||
systemctl enable captrace.service
|
||||
|
||||
systemctl daemon-reload
|
||||
|
||||
@@ -90,6 +159,8 @@ if [ "$M_PARAM" = "install" -o "$M_PARAM" = "upgrade" ]; then
|
||||
fi
|
||||
|
||||
echo -n "Starting OMC service ... "
|
||||
systemctl start crontask.service
|
||||
systemctl start sshsvc.service
|
||||
systemctl start captrace.service
|
||||
systemctl start restagent.service
|
||||
echo "done"
|
||||
|
||||
12
debbuild/22.04/DEBIAN/postrm
Executable file → Normal file
@@ -1,5 +1,13 @@
|
||||
# !/bin/bash
|
||||
|
||||
X86Lib64Dir=/lib/x86_64-linux-gnu
|
||||
rm -rf ${X86Lib64Dir}/libwireshark.so.15
|
||||
rm -rf ${X86Lib64Dir}/libwireshark.so
|
||||
rm -rf ${X86Lib64Dir}/libwiretap.so.12
|
||||
rm -rf ${X86Lib64Dir}/libwiretap.so
|
||||
rm -rf ${X86Lib64Dir}/libwsutil.so.13
|
||||
rm -rf ${X86Lib64Dir}/libwsutil.so
|
||||
|
||||
#rm -rf /usr/local/omc
|
||||
rm -rf /etc/nginx/conf.d/omc.conf
|
||||
rm -f /usr/local/bin/omcd
|
||||
@@ -9,11 +17,15 @@ systemctl daemon-reload
|
||||
if systemctl list-units --type=service --all | grep -q 'restagent.service'; then
|
||||
echo -n "Stopping OMC service ... "
|
||||
systemctl stop restagent.service
|
||||
systemctl stop crontask.service
|
||||
systemctl stop sshsvc.service
|
||||
systemctl stop captrace.service
|
||||
echo "done"
|
||||
fi
|
||||
|
||||
systemctl disable restagent.service
|
||||
systemctl disable crontask.service
|
||||
systemctl disable sshsvc.service
|
||||
systemctl disable captrace.service
|
||||
|
||||
systemctl daemon-reload
|
||||
|
||||
2
debbuild/22.04/DEBIAN/preinst
Executable file → Normal file
@@ -4,7 +4,9 @@ systemctl daemon-reload
|
||||
if systemctl list-units --type=service --all | grep -q 'restagent.service'; then
|
||||
echo -n "Stopping OMC service ... "
|
||||
systemctl stop restagent.service
|
||||
systemctl stop crontask.service
|
||||
systemctl stop sshsvc.service
|
||||
systemctl stop captrace.service
|
||||
echo "done"
|
||||
fi
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ database:
|
||||
password: 1000omc@kp!
|
||||
host: 127.0.0.1
|
||||
port: 33066
|
||||
name: omc_db
|
||||
name: tenants_db
|
||||
connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True
|
||||
backup: /usr/local/omc/database
|
||||
|
||||
@@ -69,19 +69,17 @@ redis:
|
||||
# sleep: time delay for after write buffer (millisecond)
|
||||
# deadLine: timeout for io read and write (second)
|
||||
mml:
|
||||
port: 4100
|
||||
port2: 5002
|
||||
sleep: 200
|
||||
deadLine: 10
|
||||
sizeRow: 600
|
||||
sizeCol: 128
|
||||
bufferSize: 65535
|
||||
user: admin
|
||||
password: admin
|
||||
mmlHome: ./mmlhome
|
||||
|
||||
# Tracking configuration
|
||||
trace:
|
||||
enabled: true
|
||||
host: "172.16.5.100" # Fill in the specific IP address
|
||||
port: 33033
|
||||
|
||||
# NE config
|
||||
ne:
|
||||
user: omcuser
|
||||
@@ -128,36 +126,28 @@ omc:
|
||||
|
||||
# Alarm module setting
|
||||
# Forward interface:
|
||||
# TLS Skip verify: true/false
|
||||
# email/sms
|
||||
# smProxy: sms(Short Message Service)/smsc(SMS Centre)
|
||||
# dataCoding: 0:GSM7BIT, 1:ASCII, 2:BINARY8BIT1, 3:LATIN1,
|
||||
# 4:BINARY8BIT2, 6:CYRILLIC, 7:HEBREW, 8:UCS2
|
||||
# email/sms/smsc
|
||||
alarm:
|
||||
alarmEmailForward:
|
||||
enable: true
|
||||
emailList:
|
||||
smtp: mail.smtp.com
|
||||
forwardAlarm: true
|
||||
email:
|
||||
smtp: smtp.xxx.com
|
||||
port: 25
|
||||
user: smtpext@smtp.com
|
||||
password: "1000smtp@omc!"
|
||||
user: smtpuser@xxx.com
|
||||
password: xxxxxx
|
||||
# TLS skip verify: true/false
|
||||
tlsSkipVerify: true
|
||||
alarmSMSForward:
|
||||
enable: true
|
||||
mobileList:
|
||||
smscAddr: "192.168.13.114:2775"
|
||||
systemID: "omc"
|
||||
password: "omc123"
|
||||
systemType: "UTRAN"
|
||||
dataCoding: 0
|
||||
serviceNumber: "OMC"
|
||||
sms:
|
||||
apiURL: http://smsc.xxx.com/
|
||||
accessKeyID: xxxx
|
||||
accessKeySecret: xxxx
|
||||
signName: xxx SMSC
|
||||
templateCode: 1000
|
||||
smProxy: smsc
|
||||
sms:
|
||||
apiURL: http://smsc.xxx.com
|
||||
accessKeyID: xxx
|
||||
accessKeySecret: xxx
|
||||
signName: XXX SMSC
|
||||
templateCode: 1000
|
||||
smsc:
|
||||
addr: "192.168.13.114:2775"
|
||||
systemID: "alarmsmsfw"
|
||||
password: "omc123"
|
||||
systemType: ""
|
||||
|
||||
# User authorized information
|
||||
# crypt: mysql/md5/bcrypt
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Package: OMC
|
||||
Version: 2.2508.2-YYYYMMDD
|
||||
Version: 2.2410.2-YYYYMMDD
|
||||
Section: AGrandTech
|
||||
Prioritt: optional
|
||||
Architecture: amd64
|
||||
|
||||
@@ -4,25 +4,38 @@ OMCRootDir=/usr/local/omc
|
||||
SystemdRootDir=/lib/systemd/system
|
||||
OMCEtcDir=${OMCRootDir}/etc
|
||||
FERootDir=${OMCRootDir}/htdocs/front
|
||||
OmcBinDir=${OMCRootDir}/bin
|
||||
X86Lib64Dir=/lib/x86_64-linux-gnu
|
||||
OMCBinDir=${OMCRootDir}/bin
|
||||
OMCStaticDir=${OMCRootDir}/static
|
||||
UsrLocalBinDir=/usr/local/bin
|
||||
OmcDaemon=omcd
|
||||
OMCDaemon=omcd
|
||||
NginxEtcDir=/etc/nginx
|
||||
NginxConfDir=${NginxEtcDir}/conf.d
|
||||
CFileList=$(ls ${OMCEtcDir}/default)
|
||||
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 ""
|
||||
echo "* To start/stop/restart/status omc service, please run:"
|
||||
echo " sudo systemctl start/stop/restart/status restagent.service"
|
||||
echo " sudo systemctl start/stop/restart/status crontask.service"
|
||||
echo " sudo systemctl start/stop/restart/status sshsvc.service"
|
||||
echo " sudo systemctl start/stop/restart/status captrace.service"
|
||||
echo " or run: "
|
||||
echo " sudo /usr/local/omc/bin/omcsvc.sh start/stop/restart/status"
|
||||
echo ""
|
||||
|
||||
cd ${X86Lib64Dir}
|
||||
chmod +rx libwireshark.so.15.0.12
|
||||
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
|
||||
chmod +rx libwiretap.so.12.0.12
|
||||
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
|
||||
chmod +rx libwsutil.so.13.1.0
|
||||
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
|
||||
if [ ! -e ${OMCDaemon} ]; then ln -s ${OMCBinDir}/omcsvc.sh ${OMCDaemon}; fi
|
||||
|
||||
chmod +rx ${OMCRootDir}/bin/*
|
||||
chmod +rx ${OMCRootDir}/*
|
||||
@@ -63,13 +76,13 @@ if [ ! -e "${NginxConfDir}/omc.conf" ]; then
|
||||
cp -f ${OMCEtcDir}/nginx/omc.conf ${NginxConfDir};
|
||||
fi
|
||||
|
||||
systemctl daemon-reload
|
||||
|
||||
# disable auto upgrade
|
||||
systemctl disable --now unattended-upgrades
|
||||
|
||||
systemctl enable restagent.service
|
||||
systemctl enable crontask.service
|
||||
systemctl enable sshsvc.service
|
||||
systemctl enable captrace.service
|
||||
|
||||
systemctl daemon-reload
|
||||
|
||||
@@ -90,6 +103,8 @@ if [ "$M_PARAM" = "install" -o "$M_PARAM" = "upgrade" ]; then
|
||||
fi
|
||||
|
||||
echo -n "Starting OMC service ... "
|
||||
systemctl start crontask.service
|
||||
systemctl start sshsvc.service
|
||||
systemctl start captrace.service
|
||||
systemctl start restagent.service
|
||||
echo "done"
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# !/bin/bash
|
||||
|
||||
X86Lib64Dir=/lib/x86_64-linux-gnu
|
||||
rm -rf ${X86Lib64Dir}/libwireshark.so.15
|
||||
rm -rf ${X86Lib64Dir}/libwireshark.so
|
||||
rm -rf ${X86Lib64Dir}/libwiretap.so.12
|
||||
rm -rf ${X86Lib64Dir}/libwiretap.so
|
||||
rm -rf ${X86Lib64Dir}/libwsutil.so.13
|
||||
rm -rf ${X86Lib64Dir}/libwsutil.so
|
||||
|
||||
#rm -rf /usr/local/omc
|
||||
rm -rf /etc/nginx/conf.d/omc.conf
|
||||
rm -f /usr/local/bin/omcd
|
||||
@@ -9,11 +17,15 @@ systemctl daemon-reload
|
||||
if systemctl list-units --type=service --all | grep -q 'restagent.service'; then
|
||||
echo -n "Stopping OMC service ... "
|
||||
systemctl stop restagent.service
|
||||
systemctl stop crontask.service
|
||||
systemctl stop sshsvc.service
|
||||
systemctl stop captrace.service
|
||||
echo "done"
|
||||
fi
|
||||
|
||||
systemctl disable restagent.service
|
||||
systemctl disable crontask.service
|
||||
systemctl disable sshsvc.service
|
||||
systemctl disable captrace.service
|
||||
|
||||
systemctl daemon-reload
|
||||
|
||||
@@ -4,7 +4,9 @@ systemctl daemon-reload
|
||||
if systemctl list-units --type=service --all | grep -q 'restagent.service'; then
|
||||
echo -n "Stopping OMC service ... "
|
||||
systemctl stop restagent.service
|
||||
systemctl stop crontask.service
|
||||
systemctl stop sshsvc.service
|
||||
systemctl stop captrace.service
|
||||
echo "done"
|
||||
fi
|
||||
|
||||
|
||||
@@ -44,8 +44,7 @@ database:
|
||||
password: 1000omc@kp!
|
||||
host: 127.0.0.1
|
||||
port: 33066
|
||||
name: omc_db
|
||||
connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True
|
||||
name: tenants_db
|
||||
backup: /usr/local/omc/database
|
||||
|
||||
# Redis data cache
|
||||
|
||||
BIN
docs/04-overview/04-OMC Overview v1.2.pdf
Normal file
@@ -1,6 +1,6 @@
|
||||
---
|
||||
OMC Overview
|
||||
---
|
||||
|
||||
# OMC Overview
|
||||
|
||||
## Introduction to OMC
|
||||
|
||||
The Core Network OMC (Operation and Maintenance Center) is a central facility used by operators to manage and maintain core network equipment. It typically includes modules for network monitoring, fault management, performance management, configuration management, security management, and other functions to ensure the smooth operation and efficient maintenance of core network equipment. By monitoring and managing core network equipment, the OMC can quickly identify and resolve network faults in real-time, improve network performance, ensure network security, and enhance operational efficiency. The OMC plays a crucial role in the network operations and maintenance of operators, serving as a key element in ensuring stable network operation.
|
||||
@@ -19,6 +19,8 @@ The Core Network OMC (Operation and Maintenance Center) is a central facility us
|
||||
|
||||
## Features
|
||||
|
||||
General Version:
|
||||
|
||||
1. Topology Management (Dashboard/State/Monitor): Dashboard, Network topology, System status, etc.
|
||||
2. Fault Management (FM): active alarms, historical alarms, etc.
|
||||
3. Configuration Management (CM): NE (Network Element) management, parameter configuration, etc.
|
||||
@@ -32,6 +34,23 @@ The Core Network OMC (Operation and Maintenance Center) is a central facility us
|
||||
11. System Management (System): menu management, dictionary management, system information, scheduling tasks, etc.
|
||||
12. Northbound Interface (NBI): optional and customized interfaces, northbound interface services, resource configuration data, performance statistics data, performance golden indicators, alarm reporting, 4A, etc.
|
||||
|
||||
Multi-tenancy Version:
|
||||
|
||||
1. In a public cloud core network, logical isolation of network assets leased by different tenants is achieved through element-specific devices (such as edge UPF), different base station IDs, SIM card number ranges, or slices.
|
||||
2. The network management system data isolates user data, user online information, base station information, and UPF throughput for each tenant based on the mapping of slice information and tenants.
|
||||
3. Tenants can view their own users (UE), have their own dedicated dashboard, and only view operation logs related to their users and accounts after logging in through the network management system.
|
||||
4. Account roles include platform operation and tenants, where the operation account is equivalent to the current network management account. Operation and multi-tenant accounts can both log in to the network management system simultaneously without affecting each other.
|
||||
|
||||
Practical Training Version:
|
||||
|
||||
1. Implement multiple student logins to the network management system for configuration practical training, where configuration parameters are stored independently but not directly pushed to network elements; final device configuration deployment is controlled by the teacher.
|
||||
2. All student configurations can be exported into a single Excel spreadsheet (students can also export their own), including header information (various configuration parameter names), student accounts, PLMN, and other key details.
|
||||
3. Teacher account privileges:
|
||||
* Ability to export, view, and compare all student parameter configurations.
|
||||
* Login with selected student accounts to browse the student's operation interface.
|
||||
* Restore a student's configuration to the system default with one click.
|
||||
* Load and deploy a student's configuration to the devices.
|
||||
|
||||
## Supported NEs
|
||||
|
||||
AMF, AUSF, UDM, SMF, UPF, PCF, NRF, NSSF, NEF, LMF, IMS, MME, N3IWF, SMSC, MOCNGW
|
||||
BIN
docs/04-overview/04-OMC 系统简介 v1.2.pdf
Normal file
@@ -1,6 +1,5 @@
|
||||
---
|
||||
OMC架构与功能
|
||||
---
|
||||
# OMC架构与功能
|
||||
|
||||
## OMC简介
|
||||
|
||||
核心网OMC(Operation and Maintenance Center)是运营商用于管理和维护核心网设备的中心。它通常包括网络监控、故障管理、性能管理、配置管理、安全管理等功能模块,用于确保核心网设备的正常运行和高效维护。OMC通过监控和管理核心网设备,可以实时发现和解决网络故障,提高网络性能,保障网络安全,提升运营效率。OMC在运营商的网络运维中扮演着重要的角色,是保障网络稳定运行的关键环节。
|
||||
@@ -11,7 +10,7 @@ OMC架构与功能
|
||||
|
||||
## 开发平台
|
||||
|
||||
1. 操作系统:linux
|
||||
1. 操作系统:Linux
|
||||
2. 硬件平台:X86/ARM64
|
||||
3. 网络架构: B/S模式
|
||||
4. 前端语言:HTML+CSS+JS(vue3)
|
||||
@@ -19,6 +18,8 @@ OMC架构与功能
|
||||
|
||||
## 功能清单
|
||||
|
||||
通用版本(专网运营商网络):
|
||||
|
||||
1. 拓扑管理(Dashboard/State/Monitor):仪表盘,网络拓扑,系统状态等
|
||||
2. 故障管理(FM):活动告警/历史告警等
|
||||
3. 配置管理(CM):网元管理,参数配置等
|
||||
@@ -32,6 +33,23 @@ OMC架构与功能
|
||||
11. 系统管理(System): 菜单管理,字典管理,系统信息,调度任务等
|
||||
12. 北向接口(NBI: Northbound Interface): 可选接口,定制化接口,北向接口服务,资源配置数据,性能统计数据, 性能黄金指标, 告警上报, 4A等
|
||||
|
||||
多租户版本(Multi-tenancy):
|
||||
|
||||
1. 公有云中心核心网通过网元设备级(如边缘UPF),不同的基站ID, SIM Card号段或切片实现各租户租赁的网络资产逻辑隔离
|
||||
2. 网管根据切片信息与租户的映射关系对各租户的用户数据、用户在线信息、基站信息以及UPF吞吐量等进行数据隔离
|
||||
3. 租户通过网管登录后,可以进行自己用户(UE)的查看、有自己的专有仪表盘,只能看自己用户和账户相关的操作日志
|
||||
4. 账号角色:平台运维和租户,运维账户相当于当前网管账户,运维账号和多租户账户可以同时登录网管系统操作,相互不影响。
|
||||
|
||||
实训版本(Practical-traning):
|
||||
|
||||
1. 实现多学员登录网管并且进行配置实训,配置参数独立存储,但不直接下发到网元设备,真正下发到设备由教师来控制;
|
||||
2. 所有学员的配置可以导出成一个excel表格(学员自己也可以导出excel表格),包含表头信息(各种配置参数名称)、学生账号、PLMN等主要信息
|
||||
3. 教师账号的权限:
|
||||
* 可以导出,查看和比较所有学员的参数配置
|
||||
* 选择学员账号登陆到学员的操作界面进行浏览
|
||||
* 选择学员的配置一键还原系统默认配置
|
||||
* 加载学员的配置并下发到设备
|
||||
|
||||
## 支持的NEs
|
||||
|
||||
AMF, AUSF, UDM, SMF, UPF, PCF, NRF, NSSF, NEF, LMF, IMS, MME, N3IWF, SMSC, MOCNGW
|
||||
BIN
docs/04-overview/image/ems-arch.png
Normal file
|
After Width: | Height: | Size: 269 KiB |
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |