自动化运维平台-OpsManage

2018年8月11日08:25:39 4 6,954 views
摘要

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

广告也精彩

自动化运维平台-OpsManage

今天群里讨论运维工具与运维管理平台,有的群友表示腾讯蓝鲸运维管理平台是一个很好的项目,但我觉得相对庞大复杂,部署和维护比较繁琐,关键是按照产品手册部署出来的一直都有问题,可能是我技术比较low --!,后来发现opsManage项目比较好,就开始尝试部署使用,现在也支持docker版本.

一、OpsManage是什么?

一款代码部署、应用部署、计划任务、设备资产管理平台。
自动化运维平台-OpsManage
开源协议:GNU General Public License v2

1.1 开发语言与框架:

  1. 编程语言:Python2.7 + HTML + JScripts
  2. 前端Web框架:Bootstrap
  3. 后端Web框架:Django
  4. 后端Task框架:Celery + Redis

1.2 OpsManage环境要求

  1. 编程语言:Python 2.7
  2. 操作系统:CentOS 6/7
  3. Ansible版本:2.0 +
  4. 部署平台及节点服务器:Rsync 3+
  5. MySQL版本:5.1-5.6

二、 环境部署准备工作

开源项目地址:https://github.com/welliamcao/OpsManage,里面有详细的部署步骤,但是有坑
为帮助大家顺利部署,今天带大家来完成。
另外:今天安装基本都使用源码包,主要是为了保证与各位同学统一,因为系统不一样,yum版本就不同,所以安装出来会有各种问题。。避免采坑

2.1 部署环境介绍

本次测试安装的虚拟机为centos7最小化安装,4G内存,50G硬盘空间(生产自己设定)

[root@qiuyuetao ~]# uname -r
3.10.0-693.el7.x86_64
[root@qiuyuetao ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core)

2.2 环境基础优化

# 1) 更新yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache   #生成缓存

# 2) 关闭防火墙selinux,iptabls 
systemctl disable firewalld
systemctl stop firewalld.service
iptables -F
iptables-save
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

# 3) 安装python相关包,centos7自带python2.7.5 如果您是6的系统,自行安装python
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

######centos 6 安装python过程 7无需安装####
# wget http://mirrors.sohu.com/python/2.7.12/Python-2.7.12.tgz
# tar -xzvf Python-2.7.12.tgz
# cd Python-2.7.12
# ./configure
# make all
# make install
# make clean
# make distclean 

# mv /usr/bin/python /usr/bin/python2.6.6  
# ln -s /usr/local/bin/python2.7 /usr/bin/python 

# vi /usr/bin/yum  
将文件头部的
#!/usr/bin/python
改成
#!/usr/bin/python2.6.6

为了不影响 yum 的使用,继续修改 vi /usr/libexec/urlgrabber-ext-down
同样把开头的 Python 改成#! /usr/bin/python2.6.6

三、OpsManage部署

安装过程遇到几次坑,可以看日志进行排错,另外python环境是centos7自带,如果您是其它系统,可以进行安装。

3.1 安装 easy_install

wget --no-check-certificate  https://pypi.python.org/packages/f7/94/eee867605a99ac113c4108534ad7c292ed48bf1d06dfe7b63daa51e49987/setuptools-28.0.0.tar.gz#md5=9b23df90e1510c7353a5cf07873dcd22
tar -xzvf setuptools-28.0.0.tar.gz
cd setuptools-28.0.0
python  setup.py  install

3.2 安装 pip

wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gz -O pip-1.5.5.tar.gz
###由于网络原因,如果下载失败,请到QQ群共享 搜索 "pip" 即可
tar -xzvf pip-1.5.5.tar.gz
cd pip-1.5.5/
python setup.py install
pip install -U pip 

3.3 安装模块

cd /mnt/
git clone https://github.com/welliamcao/OpsManage.git
cd /mnt/OpsManage/
pip install -r requirements.txt  #注意,如果出现错误不要跳过,请根据错误信息尝试解决----此处报错,我遇到的错误后,更新了一下 pip
pip install --upgrade pip    #然后再执行上边的命令
easy_install paramiko

四、安装 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
[root@node02 redis-3.2.8]# egrep "^bind|^logfile|^daemon|^loglevel" redis.conf 
bind 192.168.56.12 127.0.0.1  #服务器IP
daemonize yes    #开启后台模式
loglevel warning    #调整日志等级
logfile "/var/log/redis.log"   #日志文件路径

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

自动化运维平台-OpsManage

五、配置MySQL

yum install mariadb-server mariadb
[root@node02 OpsManage]# mysql -V
mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1

# vim /etc/my.cnf
删除所有,然后添加下边的两段。
[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

[mysqld]
socket=/var/lib/mysql/mysql.sock
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

创建数据库

mysql -uroot -p
mysql> create database opsmanage;
mysql> grant all privileges on opsmanage.* to root@'%' identified by '123321';  #设置root密码
mysql> grant all privileges on opsmanage.* to root@'192.168.56.12' identified by '123321';    #192.168.56.12是本机IP地址
mysql>\q
systemctl restart mariadb.service

六、配置 OpsManage

配置文件可以去QQ群共享 下载,搜索 settings 即可。

# cd /mnt/OpsManage/OpsManage
# vim settings.py      #需要修改配置
25  BROKER_URL = 'redis://192.168.56.12:6379/4'   #redisIP地址及端口配置
60  REDSI_KWARGS_LPUSH = {"host":'192.168.56.12','port':6379,'db':3}  #redis配置修改
158 DATABASES = {
    'default': {
        'ENGINE':'django.db.backends.mysql',
        'NAME':'opsmanage',           ##库的名字
        'USER':'root',                ##数据库用户
        'PASSWORD':'123321',          ##访问数据库的密码,注意权限的分配
        'HOST':'192.168.56.12'            #数据库地址
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
189 SFTP_CONF = {
             'port':22,
             'username':'root',
             'password':'123456',
             'timeout':30
             }  #修改成能sftp登陆OpsManage的账户

自动化运维平台-OpsManage
如果加入端口报错,可以删除

七、生成数据表与管理员账户

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  #创建登陆密码

自动化运维平台-OpsManage

八、启动部署平台

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

关于后台执行:linux后台运行和关闭、查看后台任务(进程管理)
自动化运维平台-OpsManage

九、配置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

自动化运维平台-OpsManage

启动celery

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

自动化运维平台-OpsManage

十、登录测试

浏览器 http://服务器IP:8000
输入上面创建的用户密码 root 123321
自动化运维平台-OpsManage

十一、问题总结

自动化运维平台-OpsManage
问题原因:是因为mariadb对于安全问题与msyql下权限有所不同,如果您用的mysql可能不会出现问题,mariadb在同时授权情况下,单个IP高于%授权。
处理问题
1,添加本地dns cat /etc/hosts

192.168.56.12 node02

2,添加Mysql root用户 IP授权 % 给root失效了

MariaDB [(none)]>  grant all privileges on opsmanage.* to root@'192.168.56.12' identified by '123321';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
#通过下面命令检查,授权是否生效
[root@node02 OpsManage]# mysql -h 192.168.56.12 -uroot -p123321 -e "show databases;"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| opsmanage          |
| test               |
+--------------------+
#测试通过后,重新进行第七步,即可。

感谢群友wwbhl 对此问题的反馈记录如下:
自动化运维平台-OpsManage

项目源码https://github.com/welliamcao/OpsManage 还有docker 部署方案
更多精彩:Devops相关文章

Docker 一键部署

一,克隆代码: v3 分支

cd /mnt
git clone https://github.com/welliamcao/OpsManage.git

二,构建镜像

cd OpsManage/docker
sh build.sh

## 如果执行失败,可能 cp ../requirements.txt ./

三,修改存储相关配置

[db]
$ vim conf/opsmanage.ini

修改下面配置
[db]
engine = mysql
host = db  #必须改成db
port = 3306
user = your_account
password = your_password
database = opsmanage


[redis]
host = redis #必须改成redis
port = 6379
password =
ansible_db = 3
celery_db = 4
default_db = 0


[amqp]
host = rabbitmq  #必须改成rabbitmq
port = 5672
user = guest
password = guest

其他配置视自己情况修改,如果没有可以设置enable = false

四,修改docker配置

$ cd /mnt/OpsManage/docker
$ vim docker-compose.yml
修改里面的db, ops_web两个service下面的变量值

MYSQL_USER="your_account"
MYSQL_PASSWORD="your_password"
MYSQL_ROOT_PASSWORD="your_root_password"

$ vim /mnt/OpsManage/OpsManage/settings.py文件里面的DEBUG设置为DEBUG = True
$ docker-compose up -d

自动化运维平台-OpsManage
自动化运维平台-OpsManage
自动化运维平台-OpsManage

五,浏览器访问http://ip:8000默认帐户密码是admin / admin

http://192.168.1.168:8000/
自动化运维平台-OpsManage

  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
广告也精彩
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:4   其中:访客  2   博主  2

    • avatar 嫡女 1

      真棒

        • avatar admin Admin

          @嫡女 谢谢,我会加油的

        • avatar demo 0

          脑图有啥合适的工具推荐么?
          感谢

            • avatar admin Admin

              @demo https://aonaotu.com 凹凸图 ,亿图,或者visio