上一篇:SaltStack配置管理-状态间关系 需求:需要apache配置文件里面监听的端口是每个minion本地的地址 saltstack默认的模板是jinjia模板 参考文档:http://docs.jinkan.org/docs/jinja2/ 两种分隔符: {% ... %} 和 {{ ... }} .前者用于执行诸如 for 循环 或赋值的语句,后者把表达式的结果打印到模板上. 如何知道salt配置文件是一个模板 需要在sls配置文件里面定义 apache.init.sls 修改配置h…
linux下iptables配置模板 # Flush all policy iptables -F iptables -X iptables -Z iptables -t nat -F iptables -t nat -X iptables -t nat -Z iptables -t mangle -X # Enable ip forward echo "1" > /proc/sys/net/ipv4/ip_forward # module modprobe bridge mod…
问题描述: 通过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…
需求描述: 在通过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…
Jinja2是Python下一个被广泛应用的模版引擎,他的设计思想来源于Django的模板引擎,并扩展了其语法和一系列强大的功能. 一.变量 1.1 手动传入的变量: 基本类型:{{ var }} 字典类型:{{ mydic [ 'key' ] }} 或 {{ mydic.key }} 列表类型:{{ mylist [ myindex ] }} 对象类型:{{ myobj. somemethod() }} 1.2 全局变量: 可用的全局变量:config.request.session.g.通过…
@ 目录 一.简介 二.jinja2语法 1.jinja2变量 1.1 配置文件中使用jinja变量 1.2在脚本中定义jinja变量 1.3在脚本中设置grains变量 例子1:单值 例子2:多值 例子3:多层取值 (1)在命令中多层取值 (2)在脚本中多层取值 2.表达式 1.1 if判断 1.2for循环 一.简介 jinja2是一个强大的pyton模板引擎,可以使用代码动态生成内容 创建文件内容. 可以用jinja2 配置grain和pillar扩展sls配置文件 可以用jinja2 配…
1. 变量表示 {{ argv }} 2. 赋值操作 {% set links = [ ('home',url_for('.home')), ('service',url_for('.service')), ('about',url_for('.about')), ] %} 3. if判断 {% if not loop.first %}|{% endif %} 4. for 循环 {% for label,link in links %} {% if not loop.first %}|{% e…
需求描述: 在使用saltstack的时候,有的时候,需要根据不同的变量来增加配置,比如,bind,监听端口,这些都可以通过变量写入,并且在配置的时候引用,下面是一个例子,用来演示,如何使用jinja模板,在state模块中使用. 演示: 1.编写sls及saltstack的状态文件 lamp-pkgs:  pkg.installed:    - pkgs:      - httpd      - php      - mysql      - mysql-server      - php-m…
检查了服务器上的文件,并没有缺少文件,再次上传文件到服务器,还是报错.莫名其妙,怀疑是代码问题. 仔细检查后,发现是模板的文件名问题: 用过TP的都知道:thinkphp会在$this->display()的时候,会自动获取方法名作为模板的文件名,比如一个getUserInfo方法对用着getuserinfo.html的模板文件. 对控制器里的方法,我用驼峰命名法,而view层里的模板名,也是用了驼峰命名法.比如getUserInfo方法对应了getUserInfo.html的模板文件,但是!t…
对安装在VMware上的CentOS7.X进行封装,是为了后续的实验环境需要,可以批量去生成Linux系统.通过虚拟机模版来创建一台CentOS系统,跟原来机器一样,去掉了唯一性,而通过克隆出来的虚拟机,会与被克隆的机器一样,包含网卡的信息等. 1.将CentOS7.X系统升级到最新版 [root@localhost ~]# yum -y update 升级完成,重新启动机器 2.删除系统机器ID (1)删除系统的ID:machine-id是系统的唯一性ID,每一台服务器的machin-ID都应…