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通 ...
随机推荐
- 对Jenkinsfile语法说不,开源项目Jenkins Json Build挺你
对Jenkinsfile语法说不,开源项目Jenkins Json Build挺你 项目背景 我所在的组织项目数量众多,使用的语言和框架也很多,比如Java.ReactNative.C# .NET.A ...
- 20190925-01安装redis 000 022
1.将redis压缩包放入Linux系统有4种办法. 第一:如果安装了VMware Tools工具可以直接进行拖拽 第二:在windows中找到配置好的共享文件夹将redis压缩包放入其中,在Linu ...
- 20190917-02Linux网络配置 000 003
重启网络 最后reboot重启系统 继续ping 自己的window电脑的ip ctrl+C结束 继续在windows电脑上ping虚拟机上的linux系统
- Unity接入多个SDK的通用接口开发与资源管理(一)
每一款游戏都有接入多个SDK的需求.当接入多个SDK时会面临两个问题: (1)代码层面:每个SDK都有调用各自功能的方法,我们需要统一管理每个SDK提供的方法,这样会使每个SDK调用方便,使代码整洁易 ...
- Linux常用的三种软件安装方式
一:Linux源码安装 1.解压源码包文件 源码包通常会使用tar工具归档然后使用gunzip或bzip2进行压缩,后缀格式会分别为.tar.gz与.tar.bz2,分别的解压方式: ...
- [Java核心技术]第九章-集合(映射-HashMap&TreeMap)
HashMap 基本操作 HashMap<Integer,Integer> firstAccurMap=new HashMap<Integer,Integer>(); firs ...
- SpringBoot中使用切面的每次传的参数,进行解析,验签,并返回解码后的参数
目的,在每次请求的时候,对每次传的参数,进行解析,验签,并返回解码后的参数, 以json传递: 例子背景: IOT平台提供对外可访问的接口, 需要对所有参数的传递做到 不泄露.认证的目的:所以需要在每 ...
- 说说我对 WSGI 的理解
先说下 WSGI 的表面意思,Web Server Gateway Interface 的缩写,即 Web 服务器网关接口. 之前不知道 WSGI 意思的伙伴,看了上面的解释后,我估计也还是不清楚,所 ...
- Docker应用安装
一.安装mysql 1.查看可用的 MySQL 版本 访问 MySQL 镜像库地址:https://hub.docker.com/_/mysql?tab=tags . 可以通过 Sort by 查看其 ...
- Redis中的订阅模式
redis中的客户端可以订阅一个自定义的频道,接受来自该频道的消息 订阅 订阅指定频道-SUBSCRIBE SUBSCRIBE channel [channel2]... SUBSCRIBE 频道名 ...