SaltStack配置管理-jinja模板

  上一篇:SaltStack配置管理-状态间关系

  

  需求:需要apache配置文件里面监听的端口是每个minion本地的地址

  saltstack默认的模板是jinjia模板

  参考文档:http://docs.jinkan.org/docs/jinja2/

  两种分隔符: {% ... %} 和 {{ ... }} 。前者用于执行诸如 for 循环 或赋值的语句,后者把表达式的结果打印到模板上。

  如何知道salt配置文件是一个模板 需要在sls配置文件里面定义

  apache.init.sls

  修改配置httpd配置文件files/httpd.conf

修改为

  

  加上每个minion的ip地址 ip地址可以通过命令获取

 salt ‘*‘ grains.item fqdn_ip4

  修改对应sls配置

  配置文件

  

  

  

原文地址:https://www.cnblogs.com/minseo/p/8832079.html

时间: 2024-10-30 14:47:33

SaltStack配置管理-jinja模板的相关文章

自动化运维Saltstack系列(四)之States配置管理和jinja模板的使用

States配置管理 States是Saltstack中的配置语言,在日常进行配置管理时需要编写大量的States SLS文件,而编写这些SLS文件的一般步骤也就是我们平时手动配置一台服务器的步骤:首先安装源码包,然后管理一个配置文件,最后再保证这个服务的开机启动及正常运行.其中使用到的states模块功能需要我们一边学习一边实践加强理解. 接下来,我们通过一个简单的例子来理解Saltstack配置管理的基本原理--安装keepalived 1)修改master配置文件的file_roots根目

SaltStack实战之配置管理-Jinja2模板

SaltStack实战之配置管理-Jinja2模板 学习 SaltStack SaltStack实战之配置管理-Jinja2模板 1. Salt yaml配置文件使用Jinja2模板介绍 1.1 File状态使用template参数 1.2 模板文件里面变量使用{{ 名称 }} 1.3 变量列表 2. 实战应用 1. Salt yaml配置文件使用Jinja2模板介绍 jinja2官方网站: http://jinja.pocoo.org/ 1.1 File状态使用template参数 - tem

salt jinja模板中变量使用pillar的几种方法

先转载下jinja模板中使用变量的方法,后文主要讲解pillar的变量使用方法 一.jinja模版的使用方法: 1.file状态使用template参数 - template:jinja 2.模版文件里面变量使用{{名称}},例如{{PORT}} 变量使用Grains:{{ grains['fqdn_ip4'] }} 变量使用执行模块:{{ salt['network.hw_addr']('eth0') }} 变量使用Pillar:{{ pillar['apache']['PORT'] }} 3

理解 JINJA 模板

UNDERSTANDING JINJA jinja是sls文件是默认的模板语言 JINJA IN STATES 在state文件被运行之前需要将文件中jinja模板语言部分处理掉,处理完之后再转化成YAML格式,最后变成python数据结构.jinja模板语法通常被用于在state文件中使用控制结构,如if条件,for循环等,可以达到消除冗余数据的效果. 在sls文件中使用jinja模板示例: 1 {% if grains['os'] != 'FreeBSD' %} 2 tcsh: 3 pkg:

SaltStack配置管理--状态间的关系

SaltStack配置管理--状态间的关系 1.include的引用 需求场景:用于含有多个SLS的状态,使用include可以进行多个状态的组合 [[email protected] prod]# pwd /srv/salt/prod [[email protected] prod]# vim lamp.sls include: - apache.init - php.init - mysql.init [[email protected] prod]# vim ../base/top.sls

saltstack之jinja,解决生产发布问题

最近换了工作,刚入职领导给我一个听着特复杂的需求,要实现自动发布:需求是这样的:一个程序包,分发到60台机器上,每台机器有两个这样的应用,但是路径和程序名都不一样.即分发过去全部都要重命名,当我了解了环境的详细情况之后,决定采用saltstack的jinja模版的方式,如下: {% if grains['fqdn_ip4'][0] == '10.1.10.86' %} #先判断ip,然后set2个不同的变量 {% set motd = ['/opt/eth-btc-match/eth2btc',

【Head First Python】jinja模板

学习<Head First Python>这本书的时候,里面提到了使用 jinja 模板批量生产网页的方法,这里补充一下具体实现细节. 首先,HTML 网页是需要自己准备的.也就是说,jinja 并不提供网页模板,网页想要呈现哪些内容,是由使用者自行创建 HTML 来决定的. 其次,自行创建的 HTML 中可以嵌入一些模板字符串,符合 jinja 语法的,比如 {{data}} 这种形式,jinja 是可以识别出来,然后提供 API 进行操作的. 也就是说,Python 打开了 HTML,将其

运维自动化之:Saltstack配置管理工具安装配置使用攻略

系统环境: Centos 6.x 服务端(salt-master):10.1.2.11 客户端(salt-minion):10.1.2.10.10.1.2.11.10.1.2.12 安装: rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm 服务端:yum install salt-master  客户端:yum install salt-minion 服务端配置: vim /etc/sal

SaltStack 使用 Jinja2 模板

Jinja2 是基于 python 的一个模板引擎,如下,使用 Jinja2 实现根据不同的操作系统分发不同的文件: [[email protected] ~]$ cat /srv/salt/test.sls {% set apache_conf = '/etc/httpd/conf/httpd.conf' %} # {% set ... %} 用于设置变量 {% if grains['os'] == 'Debian' %} # {% if ... %} 用于条件判断,用 {% endif %}