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