腾讯蓝鲸运维管理平台是一个很好的项目,但是比较庞大复杂,部署和维护比较繁琐,关键是按照产品手册部署出来的一直都有问题,可能是我技术比较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
安装完毕之后,目录结构如下图所示:
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
# 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上传到主机进行安装
yum install percona-release-0.1-6.noarch.rpm yum install Percona-Server-server-56 --skip broken #一定要加这个参数,不然会提示包冲突,进行不下去
# vim /etc/my.cnf [mysqld] character_set_server = utf8 #设定数据库支持utf8中文 添加以上字段
# /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
REDSI_KWARGS_LPUSH = {"host":'172.31.208.50','port':6379,'db':3} #60行修改成自己的配置
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'), } }
中间一些模版配置信息,保持默认即可
) SFTP_CONF = { 'port':22, 'username':'root', 'password':'xxxx', 'timeout':30 } #191行修改成自己的配置
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
设置登录账户密码
6.启动部署平台
# cd /mnt/OpsManage/ # python manage.py runserver 0.0.0.0:8000
注意,启动后,会占用当前终端,需要调整时开启新终端登录
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
启动celery # /usr/bin/supervisord -c /etc/supervisord.conf #注意centos7上路径 # supervisorctl status #要检查是否都是running状态
三、登录使用
游览器http://xxxx.xxxx.xxxx.xxxx:8000
输入设定的用户名密码admin
这个平台是个好东西,对于自动化运维是非常必要的,但是想学会用,反馈问题,嘿嘿,老老实实交学费