• 对于注定会优秀的人来说,他所需要的,只是时间----博主
  • 手懒得,必受贫穷,手勤的,必得富足----《圣经》
  • 帮助别人,成就自己。愿君在本站能真正有所收获!
  • 如果你在本站中发现任何问题,欢迎留言指正!
  • 本站开启了防爆破关小黑屋机制,如果您是正常登录但被关进小黑屋,请联系站长解除!

OpsManage运维自动化工具

DEVOPS eryajf 6个月前 (06-29) 53°C 已收录 0个评论
本文预计阅读时间 17 分钟

这款工具是我体验 jumpserver 同时期一起体验过的一款开源产品,在官方的 GitHub 地址中,安装的步骤给的也非常详细,基本上安装过程中不会遇到什么问题,如果你打算将之用于生产当中进行实际应用,可能还需要很多方面的打磨以及深入。不过,在体验中,你已经可以感受开发者的用心了。

从今天开始将开启一个全新的系列,打算将我遇到过的,以及感觉不错的开源项目,进行一个汇总整理分享。

1,OpsManage 是什么?

自动化运维平台: 代码及应用部署 CI/CD、资产管理 CMDB、计划任务管理平台、SQL 审核|回滚、任务调度、站内 WIKI

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

开源协议GNU General Public License v2

开源声明:欢迎大家 star 或者 fork 我的开源项目,如果大家在自己的项目里面需要引用该项目代码,请在项目里面申明协议和版权信息。

2,开发语言与框架。

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

3,OpsManage 环境要求

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

4,OpsManage 功能说明

5,Docker 构建 OpsManage

传送门

5,QQ 交流群

6,安装环境配置

接下来将是详细部署的一系列操作,大家可能会看到接下来整理的可能与官方有一些出入,那是因为我已经将搭建过程中遇到的坑都在文档中进行补充完善了。

一、安装 Python

# 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 mysql-devel zlib-devel mysql-server sshpass gcc git -y

# 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

二、安装 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

三、安装 pip

# wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gz -O pip-1.5.5.tar.gz
# tar -xzvf pip-1.5.5.tar.gz
# cd pip-1.5.5/
# python setup.py install
# pip install -U pip 

四、安装模块

# 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

daemonize yes
loglevel warning
logfile "/var/log/redis.log"
bind 你的服务器 ip 地址
# cd ../
# mv redis-3.2.8 /usr/local/redis
# /usr/local/redis/src/redis-server /usr/local/redis/redis.conf

六、配置 MySQL

安装这里就略了。

# 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 'password';
mysql>\q
# /etc/init.d/mysqld restart

七、配置 OpsManage

# cd /mnt/OpsManage
# vim settings.py
BROKER_URL =  redis://192.168.1.233:6379/3 #修改成自己的配置,格式是 redis://[:password]@host:port/db
REDSI_KWARGS_LPUSH = {"host":'192.168.1.233','port':6379,'db':3} #修改成自己的配置
DATABASES = {
    'default': {
        'ENGINE':'django.db.backends.mysql',
        'NAME':'opsmanage',
        'USER':'root',		#修改成自己的配置
        'PASSWORD':'welliam',	#修改成自己的配置
        'HOST':'192.168.1.233', #修改成自己的配置
        'PORT': 3306
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ["/mnt/OpsManage/OpsManage/static/",'/mnt/OpsManage/OpsManage/templates/'], #修改成自己的配置
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
STATICFILES_DIRS = (
     '/mnt/OpsManage/OpsManage/static/',	#修改成自己的配置
    )
TEMPLATE_DIRS = (
#     os.path.join(BASE_DIR,'mysite\templates'),
    '/mnt/OpsManage/OpsManage/templates/',	#修改成自己的配置
)

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

# 1,cd /mnt/OpsManage/
# 2,python manage.py makemigrations OpsManage	

这个地方可能报错,根据报错内容进行安装就行了。

那就安装 pymysql。

# pip install pymysql

然后回去执行上边的初始化命令,结果还会报错。

那就接着安装。

# pip install mysql-replication

然后再回去执行第二步。

# 3,python manage.py migrate
# 4,python manage.py createsuperuser	#生成登陆用户,默认 root,输入邮箱,然后接着是密码。

九、启动部署平台

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

十、配置证书认证

# ssh-keygen -t  rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub  root@ipaddress

十一、配置 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/local/bin/supervisord -c /etc/supervisord.conf
# supervisorctl status

十二、SQL 审核

自行安装 Inception 与 SQLadvisor,SQLadvisor 可执行文件请放在 OpsManage 服务器/usr/bin/sqladvisor 路径。

7,部分功能截图

Ansible 部署功能

代码部署

资产管理

计划任务管理

全局配置

用户管理

8,项目地址

OpsManage

9,结语

必须说,这是一个非常优秀非常值得称赞的一个项目,非常感谢作者聪慧的创作以及无私的分享。我曾经两度部署体验,但都没有将之运用太好,诸如作者展示的 ansible 以及代码部署方面的功能,大家有兴趣可以深入体验以及使用。


weinxin
扫码订阅,第一时间获得更新
微信扫码二维码,订阅我们网站的动态,另外不定时发送 WordPress 小技巧,你可以随时退订,欢迎订阅哦~

二丫讲梵 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明OpsManage运维自动化工具
喜欢 (0)
[如果想支持本站,可支付宝赞助]
分享 (0)
eryajf
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址