腾讯蓝鲸运维管理平台是一个很好的项目,但是比较庞大复杂,部署和维护比较繁琐,关键是按照产品手册部署出来的一直都有问题,可能是我技术比较low =。=

也试过刘天斯大神的OMserver,但是这个只是一个实验平台,应用不到生产上。后来发现opsManage项目比较好,就开始尝试部署使用,现在也支持docker版本.

一款代码部署、应用部署、计划任务、设备资产管理平台。

  • 编程语言:Python2.7 + HTML + JScripts

  • 前端Web框架:Bootstrap

  • 后端Web框架:Django

  • 后端Task框架:Celery + Redis

开源项目地址:https://github.com/welliamcao/OpsManage,里面有详细的部署步骤,但是有坑


本次测试安装的虚拟机为centos7最小化安装,4G内存,100G硬盘空间


一、环境准备

#更新yum源,注意保持主机名localhost
cd /etc/yum.repos.d/
yum install -y net-tools vim wget
mv CentOS-Base.repo CentOS-Base.repo.bak
wget http://mirrors.aliyun.com/repo/Centos-7.repo
mv Centos-7.repo CentOS-Base.repo
yum clean all
yum makecache
yum update -y

# 关闭防火墙selinux,iptabls 
systemctl disable firewalld
systemctl stop firewalld
iptables -F
iptables-save
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
#安装python相关包,centos7自带python2.7.5
yum install python-devel mysql-devel  
yum install zlib zlib-devel readline-devel sqlite-devel bzip2-devel openssl-devel gdbm-devel libdbi-devel ncurses-libs kernel-devel libxslt-devel libffi-devel python-devel zlib-devel  sshpass gcc git -y
#安装pip和相关的python包
yum install python-pip   #centos默认的yum源不带   
mkdir ~/.pip && cd ~/.pip 
vim pip.conf    #指定pip源
[global]
timeout = 60
index-url =  
pip install --upgrade pip
pip intall setup-tools


二、安装

    根据实际情况,进行安装,同时解决出现的问题,centos7自带python,不用安装

1安装模块

# cd /mnt/
# git clone    #有时候git clone很慢,可以通过.zip下载的方式下载项目
# cd /mnt/OpsManage/
# pip install -r requirements.txt  #注意,如果出现错误不要跳过,请根据错误信息尝试解决
# easy_install paramiko==2.4.1

reauirements.txt文件内容如下,如果之前的依赖包都安装完毕,一般不会出问题,如果出现了问题和报错,一般都是缺少相应的软件包

Django==1.11.7
asgiref==1.1.2
asgi-redis==1.4.3
channels==1.1.7
Celery==3.1.20
django-celery==3.2.2
celery-with-redis
djangorestframework==3.5.3
djangorestframework-jwt==1.11.0
paramiko==2.4.1
Pillow==5.0.0
python-magic==0.4.15
django-storages==1.6.5
PyNaCl==1.2.1
pycparser==2.18
pyasn1==0.4.2
ansible==2.3.3
supervisor
mysql-replication
pymysql
redis
MySQL-python
DBUtils
xlrd

安装完毕之后,目录结构如下图所示:

image.png


2安装Redis

# wget http://download.redis.io/releases/redis-3.2.8.tar.gz
# tar -xzvf redis-3.2.8.tar.gz
# cd redis-3.2.8
# make
# make install
# vim redis.conf


修改以下配置

daemonize yes             #128行
loglevel warning          #158行
logfile "/var/log/redis.log" #163行
bind 你的服务器ip地址         #61行      
例如: bind 127.0.0.1 192.168.88.201

image.png

# cd ../
# mv redis-3.2.8 /usr/local/redis
# /usr/local/redis/src/redis-server /usr/local/redis/redis.conf


3安装mysql

# yum install  #使用Yum直接速率很慢,可以直接用wget下载,使用rpm -ivh安装 
# yum install Percona-Server-server-56
# vim /etc/my.cnf

对于国外站点的程序或者rpm包,我的方式是直接网页下载后再用xftp上传到主机进行安装

image.png

yum install percona-release-0.1-6.noarch.rpm 
yum install Percona-Server-server-56 --skip broken    #一定要加这个参数,不然会提示包冲突,进行不下去


image.png

# vim /etc/my.cnf
[mysqld]
character_set_server = utf8   #设定数据库支持utf8中文
添加以上字段

image.png

# /etc/init.d/mysqld restart     	#centos 6
# systemctl start mysql.service 	#centos 7
# mysql -uroot -p  				#初始密码为空,直接回车就行
mysql> create database opsmanage DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;   #创建数据库opsmanage 使用默认utf-8的中文
mysql> grant all privileges on opsmanage.* to root@'%' identified by 'password''; #权限分配root对localhost本机的访问,密码为password,一定要这样设置
mysql>\q

4配置OpsManage


 cd /mnt/OpsManage/OpsManage
# vim settings.py
BROKER_URL =  redis://172.31.208.50:6379/3 #25行修改成自己的配置,格式是redis://[:password]@host:port/db

image.png

REDSI_KWARGS_LPUSH = {"host":'172.31.208.50','port':6379,'db':3} #60行修改成自己的配置

image.png

DATABASES = {
    'default': {
        'ENGINE':'django.db.backends.mysql',
        'NAME':'opsmanage',
        'USER':'root',		#161行修改成自己的配置,对接数据库配置
        'PASSWORD':'password',	#修改成自己的配置
        'HOST':'172.31.208.50', #修改成自己的配置
        'PORT': 3306            #这里要加上
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

image.png


中间一些模版配置信息,保持默认即可

image.png

)
SFTP_CONF = {
             'port':22,
             'username':'root',
             'password':'xxxx',
             'timeout':30
             }  #191行修改成自己的配置

image.png


5生成数据表与管理员账户

前面的问题都解决了,执行脚本就会很顺利

# cd /mnt/OpsManage/
# python manage.py makemigrations OpsManage
# python manage.py makemigrations wiki
# python manage.py makemigrations orders
# python manage.py makemigrations filemanage
# python manage.py migrate
# python manage.py createsuperuser

image.png

设置登录账户密码

6.启动部署平台

# cd /mnt/OpsManage/
# python manage.py runserver 0.0.0.0:8000

image.png

注意,启动后,会占用当前终端,需要调整时开启新终端登录


7.配置Celery异步任务系统

# echo_supervisord_conf > /etc/supervisord.conf
# export PYTHONOPTIMIZE=1
# vim /etc/supervisord.conf
最后添加
[program:celery-worker-default]
command=/usr/bin/python manage.py celery worker --loglevel=info -E -Q default
directory=/mnt/OpsManage
stdout_logfile=/var/log/celery-worker-default.log
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
numprocs=1

[program:celery-worker-ansible]
command=/usr/bin/python manage.py celery worker --loglevel=info -E -Q ansible
directory=/mnt/OpsManage
stdout_logfile=/var/log/celery-worker-ansible.log
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
numprocs=1


[program:celery-beat]
command=/usr/bin/python manage.py celery beat
directory=/mnt/OpsManage
stdout_logfile=/var/log/celery-beat.log
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
numprocs=1

[program:celery-cam]
command=/usr/bin/python manage.py celerycam
directory=/mnt/OpsManage
stdout_logfile=/var/log/celery-celerycam.log
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT
numprocs=1

image.png

启动celery
# /usr/bin/supervisord -c /etc/supervisord.conf    #注意centos7上路径
# supervisorctl status #要检查是否都是running状态

image.png



三、登录使用

游览器http://xxxx.xxxx.xxxx.xxxx:8000

image.png

输入设定的用户名密码admin

image.png



image.png


image.png


这个平台是个好东西,对于自动化运维是非常必要的,但是想学会用,反馈问题,嘿嘿,老老实实交学费

image.png