一、简介
OpsManage是集代码及应用部署CI/CD、资产管理CMDB、计划任务管理平台、SQL审核|回滚、任务调度等一身的自动化运维平台,是国人welliam开发的。因在参考大神的文档实践安装中存在诸多问题,请教过大神多次,鉴于环境问题,写个记录在此膜拜大神。
Github地址:https://github.com/welliamcao/OpsManage
开发语言与框架:
- 编程语言:Python2.7 + HTML + JScripts
- 前端Web框架:Bootstrap
- 后端Web框架:Django
- 后端Task框架:Celery + Redis
OpsManage环境要求
- 编程语言:Python 2.7
- 操作系统:CentOS 6+
- Ansible版本:2.0 +
- 部署平台及节点服务器:Rsync 3+
- MySQL版本:5.1-5.6
二、安装配置Redis
yum install epel-release -y #安装epel源 yum install redis -y #安装redis
修改配置文件
vim /etc/redis.conf #编辑配置文件 daemonize yes #是否以后台进程运行 loglevel warning logfile "/var/log/redis.log" bind 127.0.0.1 systemctl start redis #启动redis服务 systemctl enable redis #设置开机启动
三、安装配置Mysql
在使用MySQL Yum存储库时,默认选择安装最新的MySQL版本的MySQL5.7,这里版本要求是5.1-5.6,因此是需要更改repo文件禁用5.7的源而启用5.5的源来安装。
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm #安装官方源 vim /etc/yum.repos.d/mysql-community.repo #修改源文件 将5.7的源改为enabled=0 禁用,5.5的改为enabled=1启用。 yum repolist enabled | grep mysql #验证启用的源 yum -y install mysql-community-server #安装mysql5.5服务端 systemctl start mysqld #启动msyql systemctl enable mysqld #设置开机启动
修改配置文件
# vim /etc/my.cnf [mysqld] character_set_server = utf8 添加以上字段 sytemctl restart mysqld #重启mysqld mysql_secure_installation #执行mysql初始化设置root密码
#登录mysql创建数据库并授权 mysql -uroot -p mysql> create database opsmanage; mysql> grant all privileges on opsmanage.* to [email protected]'%' identified by 'password';
四、安装依赖及模块
Centos7自带python2.7.5 、pip ,pip没安装的直接用yum install -y python-pip, 然后在升级下pip install -U pip。
#要装的依赖及程序 yum install -y mysql mysql-devel python-devel libevent-devel gcc make cmake pip install gevent # cd /mnt/ # git clone https://github.com/welliamcao/OpsManage.git # cd /mnt/OpsManage/ # pip install -r requirements.txt #注意,如果出现错误不要跳过,请根据错误信息尝试解决
五、配置OpsManage
cd /mnt/OpsManage/OpsManage # vim settings.py BROKER_URL = redis://127.0.0.1/3 #修改成自己的配置,格式是redis://[:password]@host:port/db REDSI_KWARGS_LPUSH = {"host":'127.0.0.1','port':6379,'db':3} #修改成自己的配置 DATABASES = { 'default': { 'ENGINE':'django.db.backends.mysql', 'NAME':'opsmanage', 'USER':'root', #修改成自己的配置 'PASSWORD':'welliam', #修改成自己的配置 'HOST':'127.0.0.1', #修改成自己的配置 # '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/', #修改成自己的配置 )
六、生成数据表与管理员账户
rm -rf migrations #删除缓存文件 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
七、配置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 # supervisord -c /etc/supervisord.conf # supervisorctl status #要检查是否都是running状态
八、启动部署平台
# cd /mnt/OpsManage/ # python manage.py runserver 0.0.0.0:8000 网页访问公网或者内网ip地址+8000端口
九、配置秘钥分发
# ssh-keygen # ssh-copy-id [email protected]