问题一:在执行如下命令安装时发生包冲突问题:
yum install Percona-Server-server-56 Percona-Server-devel-56 -y
报错如下:
因为我们安装的是mariadb数据库,网上查阅资料,发现可以不用安装Percona-Server-server和Percona-Server-devel。
问题二:在安装项目所需模块时遇到mysql_config找不到的问题
cd /mnt/OpsManage/
pip install -r requirements.txt
报错如下图所示:
上面的错误是由于缺少mysql_config文件导致,查看下mysql_config文件是否存在:
find / -name mysql_config
果然没有找到mysql_config,这个是因为缺少mysql-devel,导致mysql_config丢失,安装mysql-devel即可。
yum install mysql-devel
详细可参考:https://my.oschina.net/liuyuantao/blog/746541
问题三:在安装项目所需模块时遇到已经安装的包(six、dnspython)版本过低的问题。
再次执行:pip install -r requirements.txt
报错如下图所示:
卸载原来安装的six及dnspython包并安装报错中所指定的版本或更高版本的对应包,命令如下:
pip uninstall dnspython
pip install dnspython==1.15
pip uninstall six
pip install six==1.11.0
接下来,再次重新执行:pip install -r requirements.txt
报错如下:
初步定位,是安装mysql-python(即MySQLdb)时报错(pip install mysql-python)。参考网上其他大神遇到相似报错时给出的解决办法:
1.安装python-devel包,具体参考:https://blog.csdn.net/xiaohaiyinyu/article/details/75208553
但是问题并未解决,报错继续,继续定位发现是因为在编译时找不到-lmysqlclient如下图所示,继续查阅资料发现如下博客
https://blog.csdn.net/furzoom/article/details/51601851
问题相似,且从控制台日志可知在安装时指定的lib路径是/usr/lib64/而我们全盘查找libmysqlclient.so文件发现如上文中的博客中所述,当我们安装了mysql-devel之后,关于mysql的.so文件放在/usr/lib64/新生成的mysql目录下,造成安装mysql-python包时找不到,所以我们使用命令将/usr/lib64/mysql/下的文件拷贝到/usr/lib64/下
cd /usr/lib64/mysql/
cp * ../
再次执行pip install -r requirements.txt,即可安装成功!
问题四:在安装生成数据表与管理员账户执行如下命令时:
# 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
报错如下:
File "/usr/lib/python2.7/site-packages/paramiko/ssh_gss.py", line 55, in
GSS_EXCEPTIONS = (gssapi.GSSException,)
AttributeError: 'module' object has no attribute 'GSSException'
可能是paramiko版本更新的原因,造成引入包中模块变更造成!解决办法如下:
编辑修改报错文件/usr/lib/python2.7/site-packages/paramiko/ssh_gss.py中第53,54行,将原来的:
import gssapi
GSS_EXCEPTIONS = (gssapi.error.GSSException,)
修改为:
import gssapi.error
GSS_EXCEPTIONS = (gssapi.error.GSSException,)
问题修复,执行生成数据表及管理员账户无误!
问题五:在配置Celery异步任务系统时遇到问题,首先是我们supervisord文件不在/usr/local/bin/目录下,而是在/usr/bin/下,如下所示:
其次,在配置完成之后,通过supervisord启动celery时发现celerycam进程启动不起来,报错如下:
查看celery-cam日志发现报错如下:
tail -200f /var/log/celery-celerycam.log
发现是连接redis时异常!所以我们通过redis-cli测试连接redis出现异常。
redis-cli -h 192.168.11.95 -p 6379
#查看所有keys
192.168.11.95:6379> keys *
异常如下:
定位发现错误原因:默认情况下redis运行在保护模式(这种模式下,访问不需要密码),但是这种模式只允许本地回路访问。 按照异常提示给出的四种解决方法中的第二种方式修改。
1)打开redis配置文件(/usr/local/redis/redis.conf)把下面对应的注释掉
# bind 127.0.0.1
2)关闭保护模式,修改配置文件中的protected-mode参数为no
protected-mode no
(3)重启redis,重新启动redis服务,要想配置文件起效,启动的时候,必须指定配置文件。如下:
/usr/local/redis/src/redis-server ../redis.conf
查看redis-server进程是否正常启动:
# ps aux |grep redis
正常如下:
(4)再次redis-cli测试连接redis,连接成功正确结果如下所示:
(5)重新通过supervisor启动celery服务进程:
#停止所有服务
# supervisorctl shutdown
#启动服务
#/usr/bin/supervisord -c /etc/supervisord.conf
# 查看进程状态
# supervisorctl status
正确结果如下所示:
安装部署Opsmanage自动化运维平台详细步骤请参考:
https://github.com/welliamcao/OpsManage
https://blog.csdn.net/miss1181248983/article/details/85157712
https://blog.51cto.com/welliamcao/1920881?source=drt