云计算自动化运维——saltstack之jinja模块详解
文章目录
- 一、jinja模板讲解
- 1.1 jinja引入
- 1.2 什么是jinja
- 1.3 jinja使用归纳为三个地方
- 1.4 jinjia语法
一、jinja模板讲解
1.1 jinja引入
对于同一文件,推送到不同主机上时,需要改动的内容不一定相同。比如web中我们需要监听对应minion端自己的一个网卡IP、某个端口,就不可以直接配置文件指定IP,需要涉及到一些变量进行获取后更改操作。现在Saltstack使用Jinja模板进行文件管理,在jinja中使用grains、pillar等标识并加上一些变量,就可以实现上述操作,同时可以使得文件管理更灵活,使用jinja可以减少人为操作,提升工作效率。
1.2 什么是jinja
jinja是state(即.sls)文件中默认模版语言,基于python
用来定义类似变量或者表达式
state文件中使用 “- template:jinjia” 声明
1.3 jinja使用归纳为三个地方
(1)- file状态使用template参数
– template:jinja
(2)模板文件里边使用变量名称{{ 变量 }} 。比如 {{ HOST }} {{PORT}}
(3)变量列表(变量列表和default对齐):
如果使用模板,用户定义的模板变量,必须通过defaults或者context参数,才能传递给source中定义的文件。就是说source文件必须通过defaults或者context参数传递模板变量,才可以在文件中使用
。
– default:http_host: {{ grains['ipv4'][-1]}} http_port: 80
例:在apache/install.sls文件中定义变量列表
file.managed:- name: /etc/httpd/conf/httpd.conf- source: salt://files/httpd.conf- template: jinja- defaults:http_port: 80http_host: {{ grains['ipv4'][-1]}}
1.4 jinjia语法
【1】jinja取变量使用{{ 变量 }},表达式使用{% 表达式 %}
设置变量
{% set var = 'good' %}
取变量值
{{ var }}
{{ grains['id'] }}
【2】判断语句
{% if grains['os'] == 'CentOS' %}
apache: httpd
{% elif grains['os'] == 'Debian' %}
apache:apache2
{% endif %}
【3】for 循环
{% for user in users%}{{ user }}
{{ endfor }}
云计算自动化运维——saltstack之jinja模块详解相关推荐
- 企业运维实战--自动化运维Saltstack(上)之saltstack的安装部署、远程执行、grains和pillar详解以及Jinja模板的使用
企业运维实战--自动化运维Saltstack(上) 前言 一.Saltstack安装部署 二.sls文件远程执行 saltstack安装httpd并启动 saltstack源码编译安装nginx 启动 ...
- 自动化运维—saltstack
2019独角兽企业重金招聘Python工程师标准>>> 自动化运维--saltstack .ansible 一.自动化运维介绍 传统运维:传统运维效率低,大多工作需要人工完成,工作繁 ...
- 自动化运维saltstack(资源)
2019独角兽企业重金招聘Python工程师标准>>> 简介 SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的pupp ...
- 运维程序员入门指南:运维职责和分类划分详解
很多人傻傻分不清楚运维具体是干什么的?有哪些分类?这很正常,孔子曰:术业有专攻,如是而已.还有一些新人小白想要进入这个行业,但是很懵懂,在刚刚接触,心里就打退堂鼓了,害怕自己学不会搞不定弄不懂.千锋广 ...
- jq中查找上级_云计算自动化运维之linux-工作中常用命令总结(上)
***想看完整版请看(上).(中).(下)三篇文章*** ls 命令,英文单词list的缩写,用于列出目录或者文件 查看帮助,ls --help 查看帮助 2.列出以"."开头的文 ...
- easyui中的datetimebox 只显示年月日_云计算自动化运维之linux-工作中常用命令总结(中)...
***想看完整版请看(上).(中).(下)三篇文章*** date命令,显示系统时间 直接输入date 2.date 命令打印年月日,使用命令date +%F或者是date +%Y-%m-%d 3.d ...
- linux mkdir命令用法,常用Linux运维命令 - mkdir命令用法详解
mkdir命令我们在操作Linux运维管理和网站部署的时候使用的还是比较多的,主要是用来创建指定的目录文件夹.比如老蒋在之前有博客文章中提到挂载数据硬盘的时候,我们需要创建home或者www目录文件夹 ...
- Linux运维10:scp命令详解
系列专题:Linux运维入门教程 scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的. ...
- Linux运维07:free命令详解
系列专题:Linux运维入门教程 free命令可以显示Linux系统中空闲的.已用的物理内存及swap内存,及被内核使用的buffer.在Linux系统监控的工具中,free命令是最经常使用的命令之一 ...
最新文章
- change python是什么意思_回溯是什么意思?
- Nowcoder 提高组练习赛-R3
- golang中的big.Int
- Leetcode 349. 两个数组的交集 解题思路及C++实现
- @ngrx入坑angular的schema,爽的一逼!
- 【java】静态代码块
- PHP中操作MySQL的一些要注意的问题
- 搭建eureka注册中心
- flutter ios打包_使用 Travis CI 为 Flutter 项目打包 Android/iOS 应用
- matlab中LMI工具箱函数feasp的用法
- 《高翔视觉slam十四讲》学习笔记 第六讲 非线性优化
- Mac软件卸载:安全彻底地卸载Microsoft Outlook
- python——实例详细弄懂if __name__ == ‘__main__‘用法
- 【转】右键菜单大揭密
- 多边形画椭圆算法java_运用椭圆画法,45行代码画出任意正多边形
- 公交来了 1.3.0 发布
- 转载】泡MM与GOF的23种模式(看着挺有意思)
- 数字电子技术基础——第一章 绪论(笔记)
- linux vim拷贝if tab,vim文本编辑器
- 在C++中实现foreach循环,比for_each更简洁!
热门文章
- Word 里公式编辑有黑色圆圈显示不出
- Burpsuite主动扫描New Scan详细解析
- python求方程组近似解_使用python的sympy解符号方程组后,如何将结果带入之后的符号表达式...
- 数值积分的龙贝格(Romberg)算法和梯形变步长算法的对比
- bjdctf_2020_babystack2
- Win7打开文件安全警告取消方法
- Filter Solutions入门
- App性能优化——内存、CPU、耗电、启动时间指标获取分析
- 手把手教你制作自己的ttylinux
- 40w粉拿下900w播放!这个UP主在B站发起1元买水挑战!