需求描述: 在通过saltstack进行jinja模板获取值的时候,可以通过grains的方式,获取一些操作系统相关的信息,比如,OS,ip地址等,在这里演示下,做个记录. 演示: 1.修改sls文件,增加jinja模板,选项 [root@testvm01 lamp]# cat lamp.sls lamp-pkgs: pkg.installed: - pkgs: - httpd - php - mysql - mysql-server - php-mysql - php-cli - php-mb…
需求描述: 在使用saltstack的时候,有的时候,需要根据不同的变量来增加配置,比如,bind,监听端口,这些都可以通过变量写入,并且在配置的时候引用,下面是一个例子,用来演示,如何使用jinja模板,在state模块中使用. 演示: 1.编写sls及saltstack的状态文件 lamp-pkgs:  pkg.installed:    - pkgs:      - httpd      - php      - mysql      - mysql-server      - php-m…
上一篇:SaltStack配置管理-状态间关系 需求:需要apache配置文件里面监听的端口是每个minion本地的地址 saltstack默认的模板是jinjia模板 参考文档:http://docs.jinkan.org/docs/jinja2/ 两种分隔符: {% ... %} 和 {{ ... }} .前者用于执行诸如 for 循环 或赋值的语句,后者把表达式的结果打印到模板上. 如何知道salt配置文件是一个模板 需要在sls配置文件里面定义 apache.init.sls 修改配置h…
当在开发和产品上线的时候,我们经常会遇到在同一个地方由于环境的不同而地址也不同的情况,这时候如果在代码中将该地址写死,那势必会造成上线时手动改动,多人开发及多处使用该地址难以维护等一系列问题,为避免这一问题,我们需在配置文件中分别配置该常量. 一.找到VUE项目中的配置文件: 1.dev.env.js(开发环境): 2.prod.env.js(生产环境). 二.打开文件后配置参数(该处以分别配置两个环境下的参数'ROOT'为例): 1.在dev.env.js文件中 2.在prod.env.js文…
问题描述: 通过saltstack的jinja模板方式,可以将变量的值写入到配置文件,即动态获取的方式.这里介绍,通过执行salt函数来获取值的方式. 演示: 1.通过在sls中,增加jinja的模板信息,变量信息,通过salt函数获取该值. apache-config: file.managed: - name: /etc/httpd/conf/httpd.conf - source: salt://lamp/files/httpd.conf - user: root - group: roo…
目标需求 1.使用jinja模板让apache配置监听本地ip地址 2.了解grains的基本使用方法 说明:实验环境是在前面的第二篇和第三篇基础上完成 实现步骤 使用grains获取ip地址信息 使用fqdn_ip4获取,获取下来是一个列表元素,在jinja模板里面使用IPADDR: {{ grains [ 'fqdn_ip4'][0] }}表示 [root@linux-node1 web]# salt "linux-node2*" grains.item fqdn_ip4 linu…
Jinja2 是基于 python 的一个模板引擎,如下,使用 Jinja2 实现根据不同的操作系统分发不同的文件: [root@localhost ~]$ cat /srv/salt/test.sls {% set apache_conf = '/etc/httpd/conf/httpd.conf' %} # {% set ... %} 用于设置变量 {% if grains['os'] == 'Debian' %} # {% if ... %} 用于条件判断,用 {% endif %} 结束…
1. 配置管理:state和file https://docs.saltstack.com/en/latest/topics/states/index.html Full list of states 1.state状态模块 希望主机,apache ,启动状态,关闭状态, 写法1 [root@linux-node1 web]# pwd /srv/salt/base/web [root@linux-node1 web]# vim apache.sls apache: pkg.installed:…
jinjia模板 需求:想让saltstack的file模块分发到minion端的配置文件监听minion端的IP和端口,如何用变量实现?看下面!! 1.jinja模板加grains使apache监听本地端口 # cat lamp.sls lamp-install: pkg.installed: - pkgs: - httpd - php - php-pdo - php-mysql apache-config: file.managed: - name: /etc/httpd/conf/http…
先转载下jinja模板中使用变量的方法,后文主要讲解pillar的变量使用方法 一.jinja模版的使用方法: 1.file状态使用template参数 - template:jinja 2.模版文件里面变量使用{{名称}},例如{{PORT}} 变量使用Grains:{{ grains['fqdn_ip4'] }} 变量使用执行模块:{{ salt['network.hw_addr']('eth0') }} 变量使用Pillar:{{ pillar['apache']['PORT'] }} 3…