OpsManage运维自动化工具
source link: http://www.eryajf.net/1213.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
这款工具是我体验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,项目地址
必须说,这是一个非常优秀非常值得称赞的一个项目,非常感谢作者聪慧的创作以及无私的分享。我曾经两度部署体验,但都没有将之运用太好,诸如作者展示的ansible以及代码部署方面的功能,大家有兴趣可以深入体验以及使用。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK