下載地址:
https://github.com/qingduyu/roe
1. 基本需求
1.1 系統推薦配置
生產建議使用:8核以上(python相當消耗cpu),16G以上內存 (數據傳輸很大的),磁盤 350G 以上
測試建議使用:cpu 4核以上,ram 8G以上,disk 50G以上
1.2 基礎軟件需求
python2.7 (自編譯), mysql 5.6以上(暫時不做安裝教程指導) , redis (暫時本機單機版,不做教程,不設密碼)
1.3 yum 安裝的軟件
yum install epel-release
yum install sshpass nmap supervisor
1.4.本機的ssh-key生成
ssh-keygen 一路回車
2. python 2.7 的虛擬環境(還是決定添加)
2.1 編譯2.7
編譯前的依賴安裝
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
自己下載2.7.15 進行編譯
cd Python-2.7.15
./configure --prefix=/usr/local/python2.7
make -j 4
make install
安裝pip
wget https://bootstrap.pypa.io/get-pip.py
/usr/local/python2.7/bin/python get-pip.py
部署python 虛擬環境
/usr/local/python2.7/bin/pip install virtualenv
mkdir /data/python-env
/usr/local/python2.7/bin/virtualenv -p /usr/local/python2.7/bin/python2.7 --distribute /data/python-env/
source /data/python-env/bin/activate
3.mysql的配置
數據庫的配置信息在
roeops/settings.py 中查找
create database roeops
create user roeops identified by 'roeops123'
grant all on roeops.* to roeops
導入 roeops.sql
注意 這里面已經初始化了 admin 用戶,不要再做django 的 makemigration ,除非你懂得如何做
4.配置啟動roeops(這是關鍵)
要在python虛擬環境下
roeops 默認部署在
/data/PycharmProject/roeops
目錄下,自己酌情修改目錄,pip 安裝依賴
pip install -r requirements.txt
啟動 roeops
nohup python manager runserver 0.0.0.0:80 &
5.配置 celery 這是必須的,目錄注意自己改
vim /etc/supervisord.conf 文件尾部添加
1 ;三個工人處理隊列 2 [program:celery-worker-default] 3 command=/data/python-env/bin/python manage.py celery worker --loglevel=info -E -Q default 4 directory=/data/PycharmProject/roeops 5 stdout_logfile=/data/PycharmProject/roeops/logs/celery-worker-default.log 6 autostart=true 7 autorestart=true 8 redirect_stderr=true 9 stopsignal=QUIT 10 numprocs=1 11 12 [program:celery-worker-ansible] 13 command=/data/python-env/bin/python manage.py celery worker --loglevel=info -E -Q ansible 14 directory=/data/PycharmProject/roeops 15 stdout_logfile=/data/PycharmProject/roeops/logs/celery-worker-ansible.log 16 autostart=true 17 autorestart=true 18 redirect_stderr=true 19 stopsignal=QUIT 20 numprocs=1 21 22 [program:celery-worker-database] 23 command=/data/python-env/bin/python manage.py celery worker --loglevel=info -E -Q database 24 directory=/data/PycharmProject/roeops 25 stdout_logfile=/data/PycharmProject/roeops/logs/celery-worker-database.log 26 autostart=true 27 autorestart=true 28 redirect_stderr=true 29 stopsignal=QUIT 30 numprocs=1 31 ;Celery默認任務單元由任務生產者觸發,但有時可能需要其自動觸發,而Beat進程正是負責此類任務,能夠自動觸發定時/周期性任務. 32 [program:celery-beat] 33 command=/data/python-env/bin/python manage.py celery beat 34 directory=/data/PycharmProject/roeops 35 stdout_logfile=/data/PycharmProject/roeops/logs/celery-beat.log 36 autostart=true 37 autorestart=true 38 redirect_stderr=true 39 stopsignal=QUIT 40 numprocs=1 41 ;對事件進行快照,就是監控事件的工作情況,默認1秒一個,可以調整 42 [program:celery-cam] 43 command=/data/python-env/bin/python manage.py celerycam --frequency=0.5 44 directory=/data/PycharmProject/roeops 45 stdout_logfile=/data/PycharmProject/roeops/logs/celery-celerycam.log 46 autostart=true 47 autorestart=true 48 redirect_stderr=true 49 stopsignal=QUIT 50 numprocs=1
# 啟動celery
/usr/bin/supervisord -c /etc/supervisord.conf
supervisorctl status #查看running狀態,如果沒啟動就去看日志奧,會有報錯提示的,
'''
#管理 supervisord
supervisorctl update # 更新了配置文件,就要更新
supervisorctl reload # 每次更新了python中的task 就要reload ,不然你的task
supervisorctl start program_name #單獨啟動(program_name=配置文件中的程序名稱)
supervisorctl #查看正在守候的進程
pervisorctl stop program_name #停止某一個程序(program_name=配置文件中的程序)
supervisorctl restart program_name #重啟某一個進程(program_name=配置文件中的程序)
supervisorctl stop all #停止所有的進程