10

OpsManage运维自动化工具

 3 years ago
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.
neoserver,ios ssh client
本文预计阅读时间 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

  1. # 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
  2. # wget http://mirrors.sohu.com/python/2.7.12/Python-2.7.12.tgz
  3. # tar -xzvf Python-2.7.12.tgz
  4. # cd Python-2.7.12
  5. # ./configure
  6. # make all
  7. # make install
  8. # make clean
  9. # make distclean
  10. # mv /usr/bin/python /usr/bin/python2.6.6
  11. # ln -s /usr/local/bin/python2.7 /usr/bin/python
  12. # vi /usr/bin/yum
  13. 将文件头部的
  14. #!/usr/bin/python
  15. #!/usr/bin/python2.6.6
  16. 为了不影响yum的使用,继续修改vi /usr/libexec/urlgrabber-ext-down
  17. 同样把开头的Python改成#! /usr/bin/python2.6.6

二、安装easy_install

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

三、安装pip

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

四、安装模块

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

五、安装Redis

  1. # wget http://download.redis.io/releases/redis-3.2.8.tar.gz
  2. # tar -xzvf redis-3.2.8.tar.gz
  3. # cd redis-3.2.8
  4. # make
  5. # make install

修改以下配置。

  1. # vim redis.conf
  2. daemonize yes
  3. loglevel warning
  4. logfile "/var/log/redis.log"
  5. bind 你的服务器ip地址
  6. # cd ../
  7. # mv redis-3.2.8 /usr/local/redis
  8. # /usr/local/redis/src/redis-server /usr/local/redis/redis.conf

六、配置MySQL

安装这里就略了。

  1. # vim /etc/my.cnf
  2. 删除所有,然后添加下边的两段。
  3. [mysql]
  4. default-character-set=utf8
  5. socket=/var/lib/mysql/mysql.sock
  6. [mysqld]
  7. socket=/var/lib/mysql/mysql.sock
  8. sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

接着创建数据库。

  1. # mysql -uroot -p
  2. mysql> create database opsmanage;
  3. mysql> grant all privileges on opsmanage.* to root@'%' identified by 'password';
  4. mysql>\q
  5. # /etc/init.d/mysqld restart

七、配置OpsManage

  1. # cd /mnt/OpsManage
  2. # vim settings.py
  3. BROKER_URL = redis://192.168.1.233:6379/3 #修改成自己的配置,格式是redis://[:password]@host:port/db
  4. REDSI_KWARGS_LPUSH = {"host":'192.168.1.233','port':6379,'db':3} #修改成自己的配置
  5. DATABASES = {
  6. 'default': {
  7. 'ENGINE':'django.db.backends.mysql',
  8. 'NAME':'opsmanage',
  9. 'USER':'root', #修改成自己的配置
  10. 'PASSWORD':'welliam', #修改成自己的配置
  11. 'HOST':'192.168.1.233', #修改成自己的配置
  12. 'PORT': 3306
  13. # 'ENGINE': 'django.db.backends.sqlite3',
  14. # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
  15. TEMPLATES = [
  16. 'BACKEND': 'django.template.backends.django.DjangoTemplates',
  17. 'DIRS': ["/mnt/OpsManage/OpsManage/static/",'/mnt/OpsManage/OpsManage/templates/'], #修改成自己的配置
  18. 'APP_DIRS': True,
  19. 'OPTIONS': {
  20. 'context_processors': [
  21. 'django.template.context_processors.debug',
  22. 'django.template.context_processors.request',
  23. 'django.contrib.auth.context_processors.auth',
  24. 'django.contrib.messages.context_processors.messages',
  25. STATICFILES_DIRS = (
  26. '/mnt/OpsManage/OpsManage/static/', #修改成自己的配置
  27. TEMPLATE_DIRS = (
  28. # os.path.join(BASE_DIR,'mysite\templates'),
  29. '/mnt/OpsManage/OpsManage/templates/', #修改成自己的配置

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

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

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

那就安装pymysql。

  1. # pip install pymysql

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

那就接着安装。

  1. # pip install mysql-replication

然后再回去执行第二步。

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

九、启动部署平台

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

十、配置证书认证

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

十一、配置Celery异步任务系统

  1. # echo_supervisord_conf > /etc/supervisord.conf
  2. # export PYTHONOPTIMIZE=1
  3. # vim /etc/supervisord.conf
  4. [program:celery-worker-default]
  5. command=/usr/bin/python manage.py celery worker --loglevel=info -E -Q default
  6. directory=/mnt/OpsManage
  7. stdout_logfile=/var/log/celery-worker-default.log
  8. autostart=true
  9. autorestart=true
  10. redirect_stderr=true
  11. stopsignal=QUIT
  12. numprocs=1
  13. [program:celery-worker-ansible]
  14. command=/usr/bin/python manage.py celery worker --loglevel=info -E -Q ansible
  15. directory=/mnt/OpsManage
  16. stdout_logfile=/var/log/celery-worker-ansible.log
  17. autostart=true
  18. autorestart=true
  19. redirect_stderr=true
  20. stopsignal=QUIT
  21. numprocs=1
  22. [program:celery-beat]
  23. command=/usr/bin/python manage.py celery beat
  24. directory=/mnt/OpsManage
  25. stdout_logfile=/var/log/celery-beat.log
  26. autostart=true
  27. autorestart=true
  28. redirect_stderr=true
  29. stopsignal=QUIT
  30. numprocs=1
  31. [program:celery-cam]
  32. command=/usr/bin/python manage.py celerycam
  33. directory=/mnt/OpsManage
  34. stdout_logfile=/var/log/celery-celerycam.log
  35. autostart=true
  36. autorestart=true
  37. redirect_stderr=true
  38. stopsignal=QUIT
  39. numprocs=1
  40. 启动celery
  41. # /usr/local/bin/supervisord -c /etc/supervisord.conf
  42. # supervisorctl status

十二、SQL审核

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

7,部分功能截图

Ansible部署功能

代码部署

资产管理

计划任务管理

全局配置

用户管理

8,项目地址

OpsManage

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


weinxin

二丫讲梵 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明OpsManage运维自动化工具

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK