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

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

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

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

  • 前端Web框架:Bootstrap

  • 后端Web框架:Django

  • 后端Task框架:Celery + Redis

开源项目地址:,里面有详细的部署步骤,但是有坑

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

一、环境准备

#更新yum源,注意保持主机名localhostcd /etc/yum.repos.d/yum install -y net-tools vim wgetmv CentOS-Base.repo CentOS-Base.repo.bakwget http://mirrors.aliyun.com/repo/Centos-7.repomv Centos-7.repo CentOS-Base.repoyum clean allyum makecacheyum update -y# 关闭防火墙selinux,iptabls systemctl disable firewalldsystemctl stop firewalldiptables -Fiptables-savesed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux#安装python相关包,centos7自带python2.7.5yum 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 = 60index-url =  pip install --upgrade pippip 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.7asgiref==1.1.2asgi-redis==1.4.3channels==1.1.7Celery==3.1.20django-celery==3.2.2celery-with-redisdjangorestframework==3.5.3djangorestframework-jwt==1.11.0paramiko==2.4.1Pillow==5.0.0python-magic==0.4.15django-storages==1.6.5PyNaCl==1.2.1pycparser==2.18pyasn1==0.4.2ansible==2.3.3supervisormysql-replicationpymysqlredisMySQL-pythonDBUtilsxlrd

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

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.pyBROKER_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 defaultdirectory=/mnt/OpsManagestdout_logfile=/var/log/celery-worker-default.logautostart=trueautorestart=trueredirect_stderr=truestopsignal=QUITnumprocs=1[program:celery-worker-ansible]command=/usr/bin/python manage.py celery worker --loglevel=info -E -Q ansibledirectory=/mnt/OpsManagestdout_logfile=/var/log/celery-worker-ansible.logautostart=trueautorestart=trueredirect_stderr=truestopsignal=QUITnumprocs=1[program:celery-beat]command=/usr/bin/python manage.py celery beatdirectory=/mnt/OpsManagestdout_logfile=/var/log/celery-beat.logautostart=trueautorestart=trueredirect_stderr=truestopsignal=QUITnumprocs=1[program:celery-cam]command=/usr/bin/python manage.py celerycamdirectory=/mnt/OpsManagestdout_logfile=/var/log/celery-celerycam.logautostart=trueautorestart=trueredirect_stderr=truestopsignal=QUITnumprocs=1

image.png

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

image.png

三、登录使用

游览器

image.png

输入设定的用户名密码admin

image.png

image.png

image.png

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

image.png