centos7.4部署自動化OpsManage部署中遇到的問題解決方案

 

安裝Python 

由於我安裝的事centos7的,所以不需要安裝python2.7,直接按照下面的步驟來即可。

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 zlib-devel  sshpass gcc git -y
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python 
 vi /usr/bin/yum

 

安裝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

在執行python  setup.py  install有可能會出錯,如下圖所示:

問:爲什麼我上面已經執行定義了爲啥還會報錯?

解決方式:

由於部分系統原因可能導致這個問題,但是很好解決,只要輸入前面mv改成python2.6.6既可以。

安裝pip

tar -xzvf pip-1.5.5.tar.gz
cd pip-1.5.5/
python setup.py install
python2.6.6 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
easy_install paramiko==2.4.1

在執行pip install -r requirements.txt有可能回報以下錯誤:

錯誤1:

解決方式:

升級一下pip即可。

pip install --upgrade pip

問題2:

解決方式:

執行下面語句即可解決

yum install python-devel mysql-devel

安裝redis

安裝MySQL

添加以下信息

[mysqld]
character_set_server = utf8

創建數據庫

mysql> create database opsmanage DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

安裝mysql腳本的時候可能會出現這種問題

Can't locate Data/Dumper.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at scripts/mysql_install_db line 42

只要執行這個命令即可

yum install 'perl(Data::Dumper)'

配置OpsManage

#######修改處23行###########
''' celery config '''
djcelery.setup_loader()
BROKER_URL = 'redis://127.0.0.1:6379/4'  #改成自己的redis地址以及redis庫

###########修改處60行#########
REDSI_KWARGS_LPUSH = {"host":'127.0.0.1','port':6379,'db':4}  #改成對應的redis地址以及庫

###########修改處75行#########
CHANNEL_LAYERS = {
    "default": {
       "BACKEND": "asgi_redis.RedisChannelLayer",  # use redis backend
       "CONFIG": {
            "hosts": [("127.0.0.1", 6379)],  #無密碼方式
            "channel_capacity": {
                                   "http.request": 1000,
                                   "websocket.send*": 10000,
                                },
            "capacity": 10000,           
           },
       "ROUTING": "OpsManage.routing.channel_routing",  # load routing from our routing.py file
       },
}

########修改處136行##########
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ["/alidata/OpsManage/OpsManage/static/",'/alidata/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',
            ],
        },
    },
]


############修改處159行######
DATABASES = {
    'default': {
        'ENGINE':'django.db.backends.mysql',
        'NAME':'opsmanage',  #數據庫名
        'USER':'root',        #數據庫用戶
        'PASSWORD':'123456',  #數據庫密碼
        'HOST':'127.0.0.1',    #數據庫地址
        'port':'3306'		#要加mysql端口,默認是沒有的,需要加上去


#######修改處183行#########
STATIC_URL = '/static/'
STATICFILES_DIRS = (
     '/alidata/OpsManage/OpsManage/static/',  #改成對應路徑地址
    )


####修改處191行##########
SFTP_CONF = {
             'port':22,
             'username':'root',
             'password':'123456',
             'timeout':30
             }  #修改成能sftp登陸OpsManage的賬戶

生成數據表與管理員賬戶

# cd /alidata/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

配置證書認證

# 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 #要檢查是否都是running狀態

啓動部署平臺

# cd /alidata/OpsManage/
# python manage.py runserver 0.0.0.0:8000

 訪問登陸即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章