码迷,mamicode.com
首页 > 编程语言 > 详细

云效(阿里云)流水线 + nginx + uWsgi + flask + python3 基础环境搭建 --备忘

时间:2018-06-02 20:37:58      阅读:313      评论:0      收藏:0      [点我收藏+]

标签:port   vim   python3   自定义   图片   wget   source   usr   zlib   

 

一、开发环境搭建

1、安装python3


yum -y groupinstall "Development tools" yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz mkdir /usr/local/python3 tar -xvJf Python-3.6.5.tar.xz cd Python-3.6.5 ./configure --prefix=/usr/local/python3 make && make install ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
ls

2、安装虚拟环境venv

python3:
已默认安装

python2:
mac:sudo easy_install virtualenv
Ubuntu: apt-get install python-virtualenv
windows:pip install virtualenv

3、创建虚拟环境

python3 -m venv venv

4、在虚拟环境中安装flask

$ venv/bin/pip install flask
$ venv/bin/pip install flask-login
$ venv/bin/pip install flask-openid
......
windows: venv\Scripts\pip install flask venv\Scripts\pip install flask-login venv\Scripts\pip install flask-openid
......

5、创建测试代码 run.py

#!venv/bin/python3
from flask import Flask  
app = Flask(__name__)  
 
@app.route(/)  
def hello_world():  
    return Hello flask! <br/> -- cosmokey  
  
if __name__ == __main__:  
    app.run() 

6、修改run.py权限并运行

chmod a+x run.py
./run.py

技术分享图片

7、安装uWsgi

venv/bin/pip3 install uWsgi

技术分享图片

8、新建uwsgi.ini并配置 

[uwsgi]
http=127.0.0.1:8000                  #http协议,可通过地址栏查看
uwsgi-socket=127.0.0.1:8001          #nginx转发使用地址
wsgi-file=./run.py
callable=app
touch-reload=/home/www/test-cloud    #监控目录,如果发生变化会自动重启

9、测试运行

venv/bin/uwsgi --ini uwsgi.ini

10、将代码签入到code.aliyun.com对应代码库中

#

 

二、ECS服务器

1、申请ECS服务器

2、安装python3

3、使用venv创建虚拟环境(如有需要)ps:此比操作必须早于代码拷贝或不拷贝代码中虚拟环境,不然环境会出现创问题

mkdir /home/www/testweb
cd /home/www/testweb
python3 -m venv venv

4、从code.aliyun.com获取最新代码

#可通过云霄自动发布,具体配置请参见下文
#或手动clone代码

5、安装uWsgi ps:如使用了虚拟环境,则需要在虚拟环境中安装一次

venv/bin/pip3 install uWsgi

6、安装Nginx

mkdir /home/temp
cd /home/temp
wget -c https://nginx.org/download/nginx-1.14.0.tar.gz
tar -zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0
./configure
make && make install
ls

7、修改配置文件

#打开环境配置文件
vim ~/.bashrc

#结尾添加
export PATH=$PATH:/usr/local/nginx/sbin/

#保存并关闭后刷新环境
source ~/.bashrc

8、修改nginx配置文件,位置:/usr/local/nginx/conf/nginx.conf

location / {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:8001;
    ......
}

9、启动uwsgi守护进程

venv/bin/uwsgi --ini uwsgi.ini -d log.log

10、测试uwsgi启动情况

curl http://127.0.0.01:8000

11、启动nginx

nginx

12、查看效果

技术分享图片

 

 

13、修改代码后签入查看效果

 技术分享图片

 

 

三、云效(阿里云)-- 基础配置

1、申请云效并建立项目  && 应用

2、关联主机--生成命令

技术分享图片

 

技术分享图片

3、关联主机--ECS运行命令

技术分享图片

技术分享图片

4、检查是否加入成功

技术分享图片

 5、进入应用配置环境

1)进入项目

技术分享图片

 

2)配置发布路径、执行用户

技术分享图片

3)关联机器

技术分享图片

 

6、修改流水线,删除不必要的环节 

技术分享图片

7、运行流水线  ps:该项目配置成 “成员在push后会自动触发流水线”

技术分享图片

 

8、发布时更新配置信息 && 私密配置

1)新建config.ini文件

[baseconfig]
db = 123
dbpass = dbpass

2)添加configparser类库

venv/bin/pip3 install configparser

3)修改run.py

#!venv/bin/python3
from flask import Flask  
import configparser

app = Flask(__name__)  

cf=configparser.ConfigParser()
cf.read("config.ini")
value=cf.get(baseconfig,db) 
dbpass=cf.get(baseconfig,dbpass) 

@app.route(/)  
def hello_world():  
    return Hello cloud! <br />             + "db=" + value +<br />             + "dbpass=" + dbpass +<br />             +-- cosmokey  
  
if __name__ == __main__:  
    app.run() 

4)增加build.py

#!venv/bin/python3
print("build.py start")

import configparser
import os

cf=configparser.ConfigParser()
cf.read("config.ini")

#读取自定义配置
export_1 = os.getenv(ENV_DBCONTEXT)
cf.set(baseconfig,db,export_1)
cf.write(open("config.ini",w))

#读取私密配置
filename = rdc_security_config.properties 
pos = []

with open(filename, r) as file_to_read:
    while True:
        lines = file_to_read.readline() 
        if not lines:
            break
        pass
        p_tmp, E_tmp = lines.split(=)
        if p_tmp == "dbpass":
            cf.set(baseconfig,dbpass,E_tmp)
        pass
    pass

cf.write(open("config.ini",w))
print("build.py end")

5)更新test-cloud.release,增加build.command

build.command = python3 build.py

6)更改构建环节,增加参数

技术分享图片

7)增加私密配置

技术分享图片

8)本地测试结果

技术分享图片

 

8)签入 && 查看编译日志

技术分享图片

技术分享图片

9)远程测试结果

技术分享图片

 

 

参考资料:

http://www.pythondoc.com/flask-mega-tutorial/helloworld.html#flask 

https://www.cnblogs.com/FZfangzheng/p/7588944.html

https://help.aliyun.com/document_detail/51678.html?spm=a2c4g.11186623.6.539.oYZnJ2

 

云效(阿里云)流水线 + nginx + uWsgi + flask + python3 基础环境搭建 --备忘

标签:port   vim   python3   自定义   图片   wget   source   usr   zlib   

原文地址:https://www.cnblogs.com/comsokey/p/rdc_aliyun.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!