手工部署cmdb

2019-11-09  本文已影响0人  夜醉梦紅尘

手工部署cmdb

1.准备好容器
mysql(用来存储数据),python3(主项目的运行环境),redis(实现快速存储),rabbitmq(用来提供管道给celery分发任务id实现异步命令执行),nginx(用来实现反向代理)
注意起容器的时候加上 --network test 实现容器之间网络相同
docker network create -d bridge test (创建一个名为test的网络,它的模式为桥接)

image.png

2.拉取gitlab代码
进入python3环境的容器拉取代码

git clone -b 所开发的分支 sshgit@xxxxxx

在之前项目的主目录下

 pip3 freeze > requestment.txt        冻结执行项目的环境并保存

在容器克隆下来项目后执行

pip3 install -r requestment.txt            下载所需环境

接下来需要处理django环境中的static文件,在settings中写入

STATIC_ROOT = os.path.join(BASE_DIR,"allstatic")

注释掉

#STATICFILES_DIRS = [
#    os.path.join(BASE_DIR, 'static'),
#]
在项目的主环境下执行
python3 manage.py collectstatic  生成目录   allstatic
收集所有静态文件处理完毕项目的静态文件之后, 就可以让后面提到的 uwsgi 或者 nginx 中的任何一个很方便的使用了
Uwsgi 处理 socket 连接
安装  pip3 install uwsgi

继续在当前目录下创建 conf/uwsgi.ini  写入
[uwsgi]
chdir = /opt/cmdbteam/auto_cmdb    #主项目路径
socket = 172.20.0.4:80          #给端口nginx实现代理
#http = 172.20.0.4:80
#static-map = /static=/opt/cmdbteam/auto_cmdb/allstatic
module = auto_cmdb.wsgi

master = true
processes = 4

vacuum  = true

logto = /tmp/auto_cmdb.log

在项目的主目录下执行
uwsgi --ini conf/uwsgi.ini 
即可运行原来的django项目

3.实现nginx代理
起好nginx容器,记住他映射的80端口
在物理机上可执行

docker cp cmdb_server:/opt/cmdbteam/auto_cmdb/allstatic .
docker cp allstatic nginx_server:/ 

将静态文件搬去到nginx容器里
进入nginx容器,vi /etc/nginx/conf.d/default.conf

upstream django {
    server cmdb_server:80;      
}                              
server {                     
    listen       80;
    server_name  nginx_server;
    charset utf-8;
    client_max_body_size 75M;
                                                      
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;
                         
    location /static {
        alias /allstatic;
    }                     
    location / {             
        uwsgi_pass django;
        include uwsgi_params;
    } 

保存退出,物理机上执行docker restart nginx_server 重起nginx服务
浏览器访问 本机IP:nginx_server映射的端口就实现访问,nginx实现了代理
关于里面的异步执行命令后续分析。。。。

上一篇 下一篇

猜你喜欢

热点阅读