Files和templates

  files和templates均用于ansible文件处理,两者的主要区别是:Files目录下的文件无需写绝对路径即可将文件传输到远程主机,templates目录下文件以Jinja2渲染,支持传送到主机文件的变量替换

  template变量示例可看 https://www.cnblogs.com/FRESHMANS/p/8204721.html,template文件内的变量可在vars目录里直接定义

Jinja2模板高度自定义

①、for循环

语法:
{% for i in all_items %}
{{ item }}
{% endfor%} 示例:循环10个数,打印出ip , web{{id-200}}.edu.cn
{% for id in range(,) %}
10.10..{{ id }} web{{ "%02d | format(id-200)" }}.edu.cn
{% endfor %} 执行效果:
10.10.10.201 web01.edu.cn
......
10.10.10.210 web10.edu.cn

②、if语句

语法:
{% if my_conditional %}
.....
{% endif %} 示例:配置mysql配置文件。如果有设置变量则按变量,如果没有按默认 tasks.yml ---
- name: mysql
hosts: all
vars:
PORT:
tasks:
- template: src=/templates/mycnf.j2 dest=/etc/my.cnf      #src这里写mycnf.j2的tempalte目录 mycnf.j2 {% if PORT % }
bind-address=0.0.0.0:{{ PORT }}
{% else %}
bind-address=0.0.0.0:
{% endif %}

可用一句概括

bind-address=0.0.0.0{{ PORT | default()}}

③、多值合并

目录结构:

ansible
├── join.yml
└── roles
└── join
└── templates
└── list.j2 [root@bogon ansible]# cat join.yml
---
- hosts: test
gather_facts: no
vars:
port:
tasks:
- template: src=roles/join/templates/list.j2 dest=/root/list.txt
roles:
- { role: join}
[root@bogon ansible]# cat roles/join/templates/list.j2
{% for node in groups['test'] %}
{{ node | join("-") }}:5673            #这里意思为将hosts文件里 test组下的ip,加上端口5673,合并,join表示不在ip中间加任何东西
{% if not loop.last %}
{% endif %}
{% endfor %} 执行结果:
[root@node1 ~]# cat list.txt
10.10.10.12:
10.10.10.162:

ansible Templates的更多相关文章

  1. 【Ansible】Playbook实例

    Learn to build Ansible playbooks with our guide, one step at a time In our previous posts, we introd ...

  2. 使用Ansible实现nginx+keepalived高可用负载均衡自动化部署

    本篇文章记录通过Ansible自动化部署nginx的负载均衡高可用,前端代理使用nginx+keepalived,端web server使用3台nginx用于负载效果的体现,结构图如下: 部署前准备工 ...

  3. Ansible 利用playbook批量部署Nginx

    我这里直接部署的,环境已经搭建好,如果不知道的小伙伴可以看上一遍ansible搭建,都写好了,这里是根据前面环境部署的 192.168.30.21     ansible 192.168.30.25  ...

  4. Ansible Playbooks 介绍 和 使用 二

    目录 handlers playbook 案例 2 handlers vars 变量 setup facts 变量使用 案例 inventory 中定义变量 案例 条件测试 when 语句 案例 迭代 ...

  5. Ansible入门笔记(3)之Playbook

    目录 Ansible-playbook 1.1.什么是playbook? 1.2.playbook的核心组成 1.3.playbook的handlers.notify触发 1.4.playbook的变 ...

  6. ansible的基础使用(一)

    ansible基础使用(一) ansible的主要功能 A:为什么是ansible B:ansible的安装 C:ansible的相关文件 D:ansible的基本使用 ansible的简单操作 A: ...

  7. 学习ansible(一)

    1.介绍 1 ansible基于Python开发的自动化运维工具 2 ansible基于ssh协议实现远程管理的工具,没有客户端 3 ansible软件可以实现多种批量管理操作 2.环境 主机 IP ...

  8. 第5天:Ansible-Playbook

    Ansible中的每个模块专注于某一方面的功能.虽然每个模块实现的功能都比较简单,但是,将各个模块结合起来就可以实现比较复杂的功能.在Ansible中,将各个模块组合起来的文件是一个YAML格式的配置 ...

  9. 3、Ansible playbooks(Hosts、Users、tasks、handlers、变量、条件测试(when、迭代)、templates)

    Ansible playbooks playbook是由一个或多个“play”组成的列表.play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色.从根本上来讲 ...

随机推荐

  1. [Python] wxPython 高防Windows10记事本 (end...)

    1.开始 接触Python 也有一段时间了,o.o ,断断续续加起来没几天. 一般新学习一门新语言,除了必先输出一个 Hello World 外,都会以模拟 Windows 记事本来写一个结合自己想法 ...

  2. python-重载

    重载概念 重载是对继承的父类方法进行重新定义.重载可以重新定义方法还可以重新定义运算符.因为通过继承的类不一定能满足当前类的需求.在当前类中只需要修改部分内容而达到自己的需求. 重载特点 减少代码量和 ...

  3. hbase 工作原理

    一.HBASE介绍HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建大规模结构化的存储集群.HBase的目标是存储并处理大型数据,具体 ...

  4. 《SQL CookBook 》笔记-第一章-检索记录

    目录 第一章 检索记录 1.1检索所有行和列 1.2筛选行 1.3查找满足多个查询条件的行 1.4筛选列 1.5创建列的别名 1.6 在where子句中引用别名列 1.7 串联多列的值 1.8 在se ...

  5. DataGuard 单实例到RAC搭建

    背景简介: 本文为针对一次windows平台RAC数据库迁移至Linux平台RAC的笔记,基本步骤为: 1.搭建windows RAC到Linux 单实例数据库的DataGuard 2.做switch ...

  6. 关于Android Studio 代理

    1.需要代理 首次使用Android Studio需 推荐代理 大连东软信息学院镜像服务器地址: - http://mirrors.neusoft.edu.cn 端口:80 2.不需要代理 检查更新, ...

  7. Wsus Content内容误删处理

    问题:在wsus content文件夹下误删除文件,需要重新下载文件解决方法:打开cmdcd C:\Program Files\Update Services\Tools\.\wsusutil.exe ...

  8. python学习_1

    1.python2和python3 从宏观上讲,python2源码不标准.混乱.重复,和龟叔的理念背道而驰. 在python3上,实现了源码的统一化和标准化,去除了重复的代码. 2.编译型语言和解释型 ...

  9. 【spring源码分析】IOC容器初始化(二)

    前言:在[spring源码分析]IOC容器初始化(一)文末中已经提出loadBeanDefinitions(DefaultListableBeanFactory)的重要性,本文将以此为切入点继续分析. ...

  10. centos7之zabbix3.2代理(zabbix-proxy)搭建

    zabbix的强大之处也在于它是分布式监控系统,对于多机房大集群情况下,肯定不是一台zabbix-server服务器来进行信息的收集等工作,就要用到代理了.在记录zabbix-proxy之前,要系统的 ...