Ansible一键部署Flask(nginx+Uwsgi)
来源:互联网 发布:会员数据分析维度 编辑:程序博客网 时间:2024/06/04 19:04
问题:在一台安装有Ansible的主机上如何一键部署Flask到另外一台centos系统的主机?
前提:两台主机网络互通(参考“Ansible入门基础"进行配置)
一,新建目录app和其子目录conf,目录app用于存放Flaks项目文件(.py),uwsgi配置文件(.ini),playbook运行文件(.yml),子目录conf用于存放nginx配置文件(.conf)
1.
准备目录创建Flask文件
>mkdir app
>cd app
>vim hello.py #创建Flask 项目hello.py
from flask
import
Flask
app = Flask(__name__)
@app.route
(‘/’)
def index():
return
'<h1>Hello World!!'
if
__name__ ==
"__main__"
:
app.run(port=
8088
)
2.
创建uwsgi配置文件
>vim test_uwsgi.ini
[uwsgi]
socket =
127.0
.
0.1
:
8088
chdir = /root/app
processes =
4
threads =
2
master =
true
pythonpath = /root/app #Flask项目所在文件路径
module = hello #因为flask文件名为hello.py
callable = app #因为Flask项目文件中 app = Flask(__name__)
memory-report =
true
daemonize =
127.0
.
0.1
:
8088
#配置让uwsgi在后台运行
3.
创建nginx配置文件
>mkdir conf #在app目录下创建conf文件,用于存放nginx.conf配置文件
>cd conf
>vim nginx.conf #nginx 配置文件
include /etc/nginx/conf.d/*.conf;
server {
listen
80
default_server;
listen [::]:
80
default_server;
server_name _;
include /etc/nginx/
default
.d/*.conf;
location /{
include uwsgi_params:
uwsgi_pass
127.0
.
0.1
:
8088
#IP和端口要求与uwsgi配置文件里面的socket值一致
}
}
4.
回到app目录下,创建playbook文件
>cd ..
>vim test_build.yml #ansible执行的playbook文件
---
- name: nginx and uwsgi build Flask
hosts:testservers
remote_user: root
tasks:
- name: install nginx and uwsgi and uwsgi-plugin-python
action: yum name={{ item.name }} state=present
with_items:
- { name:
'nginx'
}
- { name:
'uwsgi'
}
- { name:
'uwsgi-plugin-python'
}
- name: create directory
file: state=directory dest=/root/testb/conf
- name: copy file
copy: src={{ item.src }} dest={{ item.dest }}
with_items:
- { src:
'/root/app/test_uwsgi.ini'
,dest:
'/root/testb/test_uwsgi.ini'
}
- { src:
'/root/app/hello.py'
, dest:
'/root/testb/hello.py'
}
- { src:
'/root/app/conf/nginx.conf'
, dest:
'/root/testb/conf/nginx.conf'
}
- name: build flask
command: uwsgi --http-socket
127.0
.
0.1
:
8088
--plugin python --ini /root/testb/test_uwsgi.ini
handlers: #handler 启动nginx
- name: start nginx
command: /root/nginx-
1.2
.
7
-c /root/app/conf/nginx.conf #启动nginx指令为:nginx安装目录地址 -c nginx配置文件地址
5.
运行playbook文件test_build.yml
>ansible-playbook test_build.yml
运行结果截图:
6.
检测是否搭建成功
>curl
127.0
.
0.1
:
8088
返回 Hello World!! 即成功
阅读全文
1 0
- Ansible一键部署Flask(nginx+Uwsgi)
- Nginx+uwsgi+Flask部署
- Nginx+uwsgi+flask部署
- Nginx+uwsgi+flask部署
- Flask+uWSGI+Nginx部署过程
- Flask+uWSGI+Nginx部署过程
- nginx+uwsgi部署flask应用
- uwsgi+nginx+flask简单部署
- nginx + uWSGI + flask应用部署
- uWSGI+Nginx部署Flask项目
- flask + nginx + uwsgi的部署小记
- Ubuntu 12.04 下部署 Nginx+uWSGI+Flask
- UWSGI + Nginx 部署 Flask web 应用
- Ubuntu 12.04 下部署 Nginx+uWSGI+Flask
- 使用 uWSGI + Nginx 部署 Flask 应用
- 记一次Nginx+uWsgi+flask部署配置
- Nginx 和 uWSGI 部署 Flask 应用
- Centos7下Flask+uwsgi+Nginx部署实践
- 简单的c#winform画图工具
- 数据库角色和服务器角色总结
- Boolan——C++开发工程师——C++面对对象高级编程(上)—— 第一周笔记
- rsync
- 基于生长的棋盘格角点检测方法--(3)代码详解(下)
- Ansible一键部署Flask(nginx+Uwsgi)
- 内存泄漏调试(1)——CRT
- android sdk manager 如何设置代理
- Linux下安装MySQL
- SSh三大框架工作原理介绍
- 用TextInputLayout,实现Material Design和输入验证
- Minimum Window Substring--LeetCode
- [Oracle 11g r2(11.2.0.4.0)]集群守护进程CSS资源管理
- 3. GDI+ Bitmap和GDI HBITMAP互转