当前位置: 首页 > 工具软件 > OMS-PHP > 使用案例 >

oms运维管理系统

司寇研
2023-12-01

1. 克隆项目

git clone https://github.com/itimor/django-oms.git

2. 后端

# 安装python依赖

cd omsBackend
pip install -r requirements.txt

# 生成数据库文件

# 把每个模块 makemigrations

python manage.py makemigrations 模块名

#初始化数据库

python manage.py migrate

#创建admin用户

python manage.py createsuperuser 

#启动

python manage.py runserver 0.0.0.0:8000 >/dev/null 2>&1 &

3. 前端

# 安装依赖

npm install
#或者
npm install --registry=https://registry.npm.taobao.org

# 本地开发 开启服务

npm run dev >/dev/null 2>&1   &

# 打包

npm run build

SALTSTACK操作

yum install -y https://repo.saltstack.com/py3/redhat/salt-py3-repo-latest-2.el7.noarch.rpm
yum install salt-master salt-minion salt-ssh salt-syndic salt-cloud salt-api

#设置api key

systemctl enable salt-api
cd /etc/pki/tls/certs/
make testcert
cd /etc/pki/tls/private/
openssl rsa -in localhost.key -out localhost_nopass.key
chmod 755 /etc/pki/tls/certs/localhost.crt
chmod 755 /etc/pki/tls/private/localhost.key
chmod 755 /etc/pki/tls/private/localhost_nopass.key
useradd -M -s /sbin/nologin saltapi
passwd saltapi
cd /etc/salt/master.d/
touch eauth.conf
touch api.conf
vim eauth.conf
# cat eauth.conf
external_auth:
pam:
saltapi:
- .*
vim api.conf
# cat api.conf
rest_cherrypy:
port: 8888
ssl_crt: /etc/pki/tls/certs/localhost.crt
ssl_key: /etc/pki/tls/private/localhost_nopass.key
systemctl restart salt-master
systemctl start salt-api
curl -k https://127.0.0.1:8888/login -H "Accept: application/x-yaml" -d username='saltapi' -d password='123456' -d eauth='pam'
curl -k https://127.0.0.1:8888/ -H "Accept: application/x-yaml" -H "X-Auth-Token: 279e8ac77670de19a769ce7e719877e531c1c312" -d client='local' -d tgt='*' -d fun='test.ping'

安装数据库(postgresql)

yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
yum install-y postgresql96-server postgresql96-contrib
/usr/pgsql-9.6/bin/postgresql96-setup initdb
systemctl enable postgresql-9.6.service
systemctl start postgresql-9.6.service
sudo -u postgres psql
```
ALTER USER postgres WITH PASSWORD 'abc123';
CREATE USER oms WITH PASSWORD '123456';
CREATE DATABASE oms OWNER oms;
GRANT ALL PRIVILEGES ON DATABASE oms to oms;
```

#修改配置

vi /var/lib/pgsql/9.6/data/postgresql.conf

修改#listen_addresses = 'localhost' 为 listen_addresses='*'

vi /var/lib/pgsql/9.5/data/pg_hba.conf

修改如下内容,信任指定服务器连接

# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 10.211.55.6/32(需要连接的服务器IP) trust
LDAP
yum remove docker docker-common docker-selinux docker-engine
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum-config-manager --enable docker-ce-edge
sudo yum install docker-ce
sudo systemctl enable docker
sudo systemctl start docker
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker run -p 389:389 --name myopenldap --network bridge --hostname openldap-host --env LDAP_ORGANISATION="xiaoma" --env LDAP_DOMAIN="xiaoma.cn" --env LDAP_ADMIN_PASSWORD="123456" --detach osixia/openldap
docker run -d --privileged -p 10004:80 --name myphpldapadmin --env PHPLDAPADMIN_HTTPS=false --env PHPLDAPADMIN_LDAP_HOSTS=172.17.0.2 --detach osixia/phpldapadmin
NODEJS
rpm -ivh nodejs-10.9.0-1.x86_64.rpm
 ln -s /soft/nodejs/lib/node_modules/cnpm/bin/cnpm /usr/local/bin/
ln -s /soft/nodejs/bin/npm /usr/local/bin/
ln -s /soft/nodejs/lib/node_modules/pm2/bin/pm2 /usr/local/bin/
ln -s /soft/nodejs/lib/node_modules/yarn/bin/yarn /usr/local/bin/
npm install pm2 -g
ln -s /soft/nodejs/bin/node /usr/local/bin/
npm install cnpm -g
npm get registry
npm config set registry http://registry.npm.taobao.org/
YUM
yum -y install mariadb mariadb-devel mariadb-server wget python-devel gcc c++ make openssl openssl-devel passwd libffi libffi-devel
yum install sqlite-devel -y
yum install sqlite*
PYTHON
tar xvf Python-3.6.3.tar.xz
cd Python-3.6.3
./configure --prefix=/soft/Python-3.6.3
ln -s /soft/Python-3.6.3/bin/python3.6 /usr/bin/python
ln -s /soft/Python-3.6.3/bin/pip3.6 /usr/bin/pip
REDIS
tar zxvf redis-4.0.14.tar.gz
mv redis-4.0.14 /usr/local/src/
cd /usr/local/src/
cd redis-4.0.14/
make
make install
mkdir /etc/redis
cp redis.conf /etc/redis/
cd /etc/redis/
mv  redis.conf 6379.conf
redis-server 6379.conf

附录

# cat omsBackend/settings/dev.py
# -*- coding: utf-8 -*-
# author: itimor
import os
DEBUG = True
TIME_ZONE = 'Asia/Shanghai'
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, '../omsBackend.db'),
}
}

# 开启ldap认证,不开启就注释下面一行

# AUTHENTICATION_BACKENDS = ("django_python3_ldap.auth.LDAPBackend",)
LDAP_AUTH_URL = "ldap://192.168.40.136:389"
LDAP_AUTH_SEARCH_BASE = "ou=admin,dc=xiaoma,dc=cn"
LDAP_AUTH_CONNECTION_USERNAME = r'admin'
LDAP_AUTH_CONNECTION_PASSWORD = r'123456'
# email账号
MAIL_ACOUNT = {
"mail_host": "mail@oms.com",
"mail_user": "admin@oms.com",
"mail_pass": "jjyy",
"mail_postfix": "oms.com",
}
# 登录skype
# from skpy import Skype
# skype账号
# SK_ACOUNT = {
# 'sk_user': 'admin@oms.com',
# 'sk_pass': 'jjyy'
# }
# SK = Skype(SK_ACOUNT["sk_user"], SK_ACOUNT["sk_pass"])
SK = 'skype'
REDIS_URL = 'redis://127.0.0.1:6379/'
# celery配置
CELERY_BROKER_URL = REDIS_URL + '0'
# celery结果返回,可用于跟踪结果
CELERY_RESULT_BACKEND = 'django-db'
# celery内容等消息的格式设置
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
# celery时区设置,使用settings中TIME_ZONE同样的时区
CELERY_TIMEZONE = TIME_ZONE
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": REDIS_URL + '1',
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
# saltapi
salt_info = {
"url": "https://127.0.0.1:8888",
"username": "saltapi",
"password": "123456"
}
from salts.saltapi import SaltAPI
sapi = SaltAPI(url=salt_info["url"], username=salt_info["username"], password=salt_info["password"])
# try:
# sapi = SaltAPI(url=salt_info["url"], username=salt_info["username"], password=salt_info["password"])
# except Exception as e:
# print(e)
# sapi = 'sapi'
from zbmanager.zabbix_api import ZabbixApi
zabbix_info = {
'apiurl': 'http://zabbix.oms.com/api_jsonrpc.php',
'username': 'admin',
'password': 'zabbix'
}
try:
zapi = ZabbixApi(zabbix_info["apiurl"], zabbix_info["username"], zabbix_info["password"])
zapi.login()
except:
zapi = 'zapi'
 类似资料: