ansible-playbook-jinja2管理nginx配置文件
1. 案例1:创建jinja2的nginx的主配置文件
1) 编写jinja2的nginx的主配置文件
1 [root@test-1 jinja2]# vim /ansible/jinja2/test.yaml
2 [root@test-1 jinja2]# cat /ansible/jinja2/test.yaml
3 ---
4 - hosts: web1
5 vars:
6 http_prot: 80
7 server_name: test.scajy.cn
8
9 tasks:
10 - name: copy nginx config file
11 template:
12 src: site.j2
13 dest: /etc/nginx/conf.d/site2.conf
14 notify: reload nginx
15
16 handlers:
17 - name: reload nginx
18 service:
19 name: nginx
20 state: reloaded
2) 创建nginx的jinja2的site.j2的配置文件
1 [root@test-1 jinja2]# cat /ansible/jinja2/site.j2
2 server {
3 listen {{http_prot}};
4 server_name {{server_name }}};
5 location / {
6 root /var/www/html;
7 index index.html;
8 }
9 }
3) 执行远程安装
1 [root@test-1 jinja2]# ansible-playbook test.yaml
2
3 PLAY [web1] *************************************************************************************************************************************************************
4
5 TASK [Gathering Facts] **************************************************************************************************************************************************
6 ok: [192.168.200.133]
7 ok: [192.168.200.132]
8
9 TASK [copy nginx config file] *******************************************************************************************************************************************
10 changed: [192.168.200.132]
11 changed: [192.168.200.133]
12
13 RUNNING HANDLER [reload nginx] ******************************************************************************************************************************************
14 changed: [192.168.200.132]
15 changed: [192.168.200.133]
16
17 PLAY RECAP **************************************************************************************************************************************************************
18 192.168.200.132 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
19 192.168.200.133 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
4) 远程测试是否web1组里的是否正常
1 [root@test-1 jinja2]# curl 192.168.200.132 -H "Host:test.scajy.cn"
2 hello Ansible
3 [root@test-1 jinja2]# curl 192.168.200.133 -H "Host:test.scajy.cn"
4 hello Ansible
2. 案例2:创建jinja2的upstream反向代理nginx配置测试
1) 编写jinja2的nginx的主配置文件
1 [root@test-1 jinja2]# vim /ansible/jinja2/test.yaml
2 [root@test-1 jinja2]# cat /ansible/jinja2/test.yaml
3 ---
4 - hosts: web1
5 vars:
6 http_prot: 80
7 server_name: test.scajy.cn
8
9 tasks:
10 - name: copy nginx config file
11 template:
12 src: site.j2
13 dest: /etc/nginx/conf.d/site2.conf
14 notify: reload nginx
15
16 handlers:
17 - name: reload nginx
18 service:
19 name: nginx
20 state: reloaded
2) 创建nginx的jinja2的site.j2的配置文件
1 [root@test-1 jinja2]# vim site_upstream.j2
2 [root@test-1 jinja2]# cat site_upstream.j2
3 {% set list=['132','133'] %}
4 upstream {{server_name}} {
5 {% for i in list %}
6 server 192.168.200.{{i}}:80;
7 {% endfor%}
8
9 }
10
11 server {
12 listen {{http_prot}};
13 server_name {{server_name }};
14 location / {
15 root /var/www/html;
16 index index.html;
17 }
18 }
3) ansible执行test.yaml文件,执行远程安装
1 [root@test-1 jinja2]# ansible-playbook test.yaml
2
3 PLAY [web1] ******************************************************************************************************************************************************************************************************************************************************************
4
5 TASK [Gathering Facts] *******************************************************************************************************************************************************************************************************************************************************
6 ok: [192.168.200.132]
7 ok: [192.168.200.133]
8
9 TASK [copy nginx config file] ************************************************************************************************************************************************************************************************************************************************
10 changed: [192.168.200.132]
11 changed: [192.168.200.133]
12
13 RUNNING HANDLER [reload nginx] ***********************************************************************************************************************************************************************************************************************************************
14 changed: [192.168.200.133]
15 changed: [192.168.200.132]
16
17 PLAY RECAP *******************************************************************************************************************************************************************************************************************************************************************
18 192.168.200.132 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
19 192.168.200.133 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
4) 远程验证是否发布成功
1 [root@test-1 jinja2]# ansible web1 -m shell -a "cat /etc/nginx/conf.d/site2.conf "
2 192.168.200.133 | CHANGED | rc=0 >>
3 upstream test.scajy.cn {
4 server 192.168.200.132:80;
5 server 192.168.200.133:80;
6
7 }
8
9 server {
10 listen 80;
11 server_name test.scajy.cn;
12 location / {
13 root /var/www/html;
14 index index.html;
15 }
16 }
17
18 192.168.200.132 | CHANGED | rc=0 >>
19 upstream test.scajy.cn {
20 server 192.168.200.132:80;
21 server 192.168.200.133:80;
22
23 }
24
25 server {
26 listen 80;
27 server_name test.scajy.cn;
28 location / {
29 root /var/www/html;
30 index index.html;
31 }
32 }
ansible-playbook-jinja2管理nginx配置文件的更多相关文章
- Ansible 使用 Playbook 管理 Nginx 配置文件
前面我们已经安装完 Nginx,但是在日常维护中经常需要修改配置文件,并重新加载配置文件,因此来写一个管理 Nginx 配置文件的 Playbook: [root@localhost ~]$ mkdi ...
- ansible使用jinja2管理配置文件以及jinja2语法简介
一.Jinja2介绍 Jinja2是基于python的模板引擎,功能比较类似于PHP的smarty,J2ee的Freemarker和velocity.它能完全支持unicode,并具有集成的沙箱执行环 ...
- ansible playbook批量改ssh配置文件,远程用户Permission denied
最近手里的数百台服务器需要改/etc/ssh/sshd_config的参数,禁止root直接登陆,也就是说 [root@t0 ~]# cat /etc/ssh/sshd_config | grep R ...
- Etcd+Confd实现Nginx配置文件自动管理
一.需求 我们使用Nginx做七层负载均衡,后端是Tomcat.项目采用灰度发布方式,每次项目升级,都要手动先从Nginx下摘掉一组,然后再升级这组,当项目快速迭代时,手动做这些操作显然会增加部署时间 ...
- 2.Ansible Playbook剧本
1.playbook?playbook翻译过来就是"剧本",那playbook组成如下 play: 定义的是主机的角色 task: 定义的是具体执行的任务 playbook: 由一 ...
- Linux 运维工作中的经典应用ansible(批量管理)Docker容器技术(环境的快速搭建)
一 Ansible自动化运维工具 Python 在运维工作中的经典应用 ansible(批量管理操作) .安装ansible(需要bese epel 2种源) wget -O /etc/yum.rep ...
- Ansible批量自动化管理工具
一,工具与环境介绍 1.1 ansible简介 批量管理服务器的工具 无需部署agent,通过ssh进行管理 流行的自动化运维工具:https://github.com/ansible/ansible ...
- Ansible批量自动化管理工具(二)
Ansible批量自动化管理工具(二) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打开百度网盘手机App,操 ...
- ansible基础-Jinja2模版 | 过滤器
Jinja2模版介绍 注:本文demo使用ansible2.7稳定版 在ansible基础-变量的「8.2 模版使用变量」章节中关于模版与变量也有所提及,有兴趣的同学可以去回顾一下. ansible通 ...
随机推荐
- Activiti7 网关(并行网关)
什么是并行网关? 并行网关允许将流程分成多条分支,也可以将多条分支合并到一起,并行网关是基于进入和外出顺序流的 fork分支: 并行后的所有外出顺序流,为每个顺序流都创建一个并发分支 jion汇聚: ...
- Mysql慢查询(配置)
慢查询?什么鬼?查询很慢吗?刚看一脸萌,学无止境 好吧,就是执行很慢的SQL 什么是慢查询 慢查询定义及作用 慢查询日志,顾名思义,就是查询慢的日志(感觉在说F话),是指Mysql记录所有执行超过lo ...
- 高德地图POI爬取_Python
高德地图POI 官方文档:https://lbs.amap.com/api/webservice/guide/api/search#introduce 官网控制台:https://lbs.amap.c ...
- composer 国内镜像
本文列举一些最常用的国内镜像,配置国内镜像后可以提高composer包的下载速度.使用阿里云镜像的开发者较多,我也一直在使用这个镜像. 1. composer 中文网提供的中国全量镜像 https:/ ...
- python django 简单接口测试页面
项目创建订单只能是接口创建的,之前都是用jar包放到jmeter里调用下单,给产品或者运维用不太方便,就想用django写一个带前端界面的下单web程序 项目结构 代码,比较渣 # coding=ut ...
- 一文解开java中字符串编码的小秘密
目录 简介 Unicode的发展史 Unicode详解 UTF-8 UTF-16 UTF-32 Null-terminated string 和变种UTF-8 简介 在本文中你将了解到Unicode和 ...
- warning: #1295-D: Deprecated declaration LED_Init - give arg types警告的解决办法
- selenium常用api之切换:table切换、alert弹框切换、iframe框架切换
10.查看浏览器打开了多少个table和当前页面在哪个table 测试:打开了浏览器后,打开了一个新的标签页之后,显示此时有2个table,浏览器中当前页面展示的是第2个页面,但是代码打印显示的仍然是 ...
- docker 搭建私有云仓库
docker搭建私有仓库 registry私有仓库 下载docker-distribution软件包 yum install epel-release yum install docker-dis ...
- DRF序列化、认证、跨域问题
初级 #models.py from django.db import models class User(models.Model): user = models.CharField(max_len ...