3.saltstack使用指南:Jinja使用技巧

SAP公司间采购后台配置及前台操作详解 公司间采购后台配置及前台操作详解 SAP 实施中公司间交易几乎每个项目都会有此业务需求,比如内地很多公司都会在香港设置贸易型子公司。通过香港公司接单,然后转内地公司生产,或内地公司通过香港公司采购进口原材料,这些业务必然会涉及到公司间交易,下面我将详细说明下SAP是如何实现这种业务场景的,供大家参考。 配置前必须前台先创建公司间供应商主数据和客户主数据 1. 创建相应的客户主数据 功能说明 公司间... 阅读详情

saltstack中使用Jinja


jinja简介

Jinja是基于python的模板引擎,在saltstack中我们使用yaml_jinja渲染器来根据模板生产对应的配置文件,对于不同的操作系统或者不同的情况通过jinja可以让配置文件或者操作形成一种模板的编写方式。

一般在diango或者saltstack这种python环境下使用较多。


在saltstack中使用jinja

使用的步骤比较简单:
1.File状态使用template参数 - template: jiaja
2.模板文件里面使用{{名称}}
3.File状态模块要指定变量列表:
- default:
PORT: 8080

以zabbix_agentd客户端的配置文件为例:

/etc/zabbix_agentd.conf:
  file.managed:
    - name: /etc/zabbix/zabbix_agentd.conf
    - source: salt://zabbix/files/zabbix_agentd.conf
    - templete: jinja
    - Server: {{pillar['zabbix-agent']['Zabbix_Server']}}

一个简单示例

我们以用saltstack安装apache服务为例,在centos和ubuntu中apache服务的安装包名称是不同的,如果在一个apache.sls文件中进行安装设置,则需要借助jinja和pillar对安装包的名称进行逻辑判断。

由grains.item可以获得salt客户端的相关信息,本例中需要获取os版本:

[root@server2 pillar]# salt '*' grains.items

显示部分结果如下:

 os:
        CentOS
    os_family:
        RedHat

所以我们要对grains的os值进行判断,不同的系统我们对apache的值进行不同的设定,这样apache就相当于是可以随机应变的值。

{% if grains['os'] == 'CentOS' %}
apache: httpd
git: git 
{% elif grains['os'] == 'Debian' %}
apache: apache2
git: git-core
{% endif %}

在安装的步骤apache.sls中直接使用如下设定:

[root@server2 init]# cat apache.sls 
apache:
  pkg.installed:
    - name: {{ pillar['apache']}}

{{pillar[‘apache’]}}就是使用了pillar中的apache的值,我们根据不同的系统会选择不同的安装包名称。通过这种方式可以简化我们配置时的系统差异,只需要考虑关键的逻辑即可。

执行结果如下:

[root@server2 init]# salt '*' state.highstate 
minion-192.168.42.130:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf is in the correct state
     Started: 15:59:02.850610
    Duration: 98.457 ms
     Changes:   
----------
          ID: /etc/bashrc
    Function: file.append
      Result: True
     Comment: File /etc/bashrc is in correct state
     Started: 15:59:02.949421
    Duration: 6.435 ms
     Changes:   
----------
          ID: /etc/profile
    Function: file.append
      Result: True
     Comment: File /etc/profile is in correct state
     Started: 15:59:02.956039
    Duration: 2.451 ms
     Changes:   
----------
          ID: /etc/yum.repos.d/local_yum.repo
    Function: file.managed
      Result: True
     Comment: File /etc/yum.repos.d/local_yum.repo is in the correct state
     Started: 15:59:02.958724
    Duration: 74.73 ms
     Changes:   
----------
          ID: apache
    Function: pkg.installed
        Name: httpd
      Result: True
     Comment: The following packages were installed/updated: httpd
     Started: 15:59:03.922463
    Duration: 7044.686 ms
     Changes:   
              ----------
              httpd:
                  ----------
                  new:
                      2.4.6-40.el7.centos
                  old:

Summary for minion-192.168.42.130
------------
Succeeded: 5 (changed=1)
Failed:    0
------------
Total states run:     5
Total run time:   7.227 s
minion-192.168.42.128:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf is in the correct state
     Started: 15:59:02.895075
    Duration: 108.572 ms
     Changes:   
----------
          ID: /etc/bashrc
    Function: file.append
      Result: True
     Comment: File /etc/bashrc is in correct state
     Started: 15:59:03.003882
    Duration: 8.062 ms
     Changes:   
----------
          ID: /etc/profile
    Function: file.append
      Result: True
     Comment: File /etc/profile is in correct state
     Started: 15:59:03.012117
    Duration: 3.349 ms
     Changes:   
----------
          ID: /etc/yum.repos.d/local_yum.repo
    Function: file.managed
      Result: True
     Comment: File /etc/yum.repos.d/local_yum.repo is in the correct state
     Started: 15:59:03.015661
    Duration: 66.75 ms
     Changes:   
----------
          ID: apache
    Function: pkg.installed
        Name: httpd
      Result: True
     Comment: The following packages were installed/updated: httpd
     Started: 15:59:03.992430
    Duration: 7570.761 ms
     Changes:   
              ----------
              httpd:
                  ----------
                  new:
                      2.4.6-40.el7.centos
                  old:

Summary for minion-192.168.42.128
------------
Succeeded: 5 (changed=1)
Failed:    0
------------
Total states run:     5
Total run time:   7.757 s
SmartFusion从FPGA到ARM系列教程 前言 本系列教程,将会以Microsemi SmartFusion一代芯片A2F200M3F为例,简单介绍片上ARM Cortex-M3 硬核 MCU 基本外设的使用,及其与FPGA逻辑模块进行交互的示例。 在学习片上硬核ARM Cortex-M3 MCU的开发之前,要先熟悉Microsemi Libero SoC开发环境的使用,可以参考:Microsemi Libero SoC系列教程 关于Microsemi SmartFusion混合型FPGA的介绍,可以参考:Microsemi SmartFusio. 阅读详情

相关推荐

Linux下自动化解析q7签名文件的有效期与时间戳

本文详细介绍了在Linux环境下自动化解析q7签名文件有效期与时间戳的方法。通过编写高效脚本,开发者可以批量提取签名时间信息,验证签名有效性,并集成到CI/CD流程中。文章提供了完整的脚本实现,包括错误处理、批量处理功能,并解决了常见环境问题,特别适用于国产操作系统如UOS的开发场景。

weixin_30872499的博客 518

SaltStack使用教程(五):命令拉取和推送文件

介绍salt为大家提供了从salt-master向salt-minion推送和拉取文件的“cp”模块很好用呀salt-cp命令简单使用[root@test1 tmp]# salt-cp 'test2.nginxs.net' /tmp/cookies.txt /tmp/cookies2.txttest2.nginxs.net: ---------- /tmp/c...

weixin_34345753的博客 1038

免费大容量国外网盘测评:冷数据归档与rclone加密接入

云存储的本质,是通过对象存储、冗余编码和分层缓存,把本地磁盘容量问题转化为网络访问与数据管理问题。免费大容量国外网盘常以空间换用户规模或付费转化,容量政策、传输策略、协议支持和退出成本,往往比标称容量更决定长期可用性。支持 WebDAV、S3 兼容和命令行工具的服务,可接入 rclone 等自动化流程,再配合客户端加密与冷热分层,用于冷数据归档、老项目备份和家庭影像保存。理解带宽换算、单文件上限、保活机制与传输一致性后,评估话题型大容量网盘与专业向协议网盘,就能把免费空间纳入可靠存储层。围绕免费大容量国外网

weixin_31292729的博客 210

Saltstack (五) --- Jinja模板 的使用

一、Jinja模板简介 Jinja是一种基于python的模板引擎,在SLS文件里可以直接使用jinja模板来做一些操作。 通过jinja模板可以为不同服务器定义各自的变量。 两种分隔符: {% ... %} 和 {{ ... }},前者用于执行诸如 for 循环 或赋值的语句,后者把表达式的结果打印到模板上(引用)。 二、Jinja模板使用方式 使用控制结构包装条件 Jinja最基本的用法是使用控制结构包装条件: [root@server1 salt]# vim test.sls [root@server

qq_35887546的博客 700

MATLAB MinGW-w64 C/C++ 编译器 手动安装配置

根据Matlab版本与MinGW版本对应关系,手动安装、配置并测试MinGW

zjh2883的博客 7340

海思Hi3516平台集成IMX214 Sensor实战:从I2C调试到VI通路构建

本文详细记录了在海思Hi3516平台上集成索尼IMX214图像传感器的完整实战过程。从硬件I2C通讯调试、驱动层适配,到上层VI通路构建与ISP配置,提供了系统性的排查步骤与代码修改要点,旨在帮助开发者快速打通从Sensor到屏幕的完整视频采集链路,解决集成过程中的常见问题。

tcp8optimizer的博客 595

Saltstack入门到精通教程(五):Jinja详解

jinja做为一个模板语言,不仅使得saltstack中的sls文件能根据pillar和grains的值进行动态变化,同时因为引入了逻辑判断,使得原本十分呆板的普通配置文件也可以变得灵活起来。这一节我们通过实际操作来一起看看jinja如何玩耍。 我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。 文章目录测试环境准备jinj...

T型人小付的博客 3200

HUMAnN数据库国内备份下载源(转自刘永鑫博士github)

百度云链接 R语言常用包合集 Windows 10版4.0.x:链接:https://pan.baidu.com/s/1JFwLP2SonK1howD5MNgNYg 提取码:l08k Windows 10版3.6.x:链接:https://pan.baidu.com/s/1h-qR2lmlaMgR4M7VbgtAFg 提取码:s5fi 下载后解压至当前目录,可获得3.6/4.0目录,剪切并替换文档 - R - win-library - 3.6/4.0 目录即可 扩增子数据库 宏基因组数据库 HUM.

zlabx的博客 3240

saltstack使用指南:Jinja2模板

saltstack使用指南:Jinja2模板

东城绝神 1595

头歌操作系统2023春季课堂练习2.1:外部中断

本关任务:通过相关知识以及实验回答:版本 1 内核的第 6 次时钟中断发生时,断点和恢复点(指令地址)分别是多少?回答问题:当第一行 0/1 字符全部输出完毕的时候一共发生了几次时钟中断,即第一行完全填满时 jiffies 记录的已发生次数为多少?本关任务:通过实际操作回答在输出第一行 0/1 字符的过程中(如下图所示),共发生了几次时钟中断?2.此时 bochs 虚拟机输出的 0/1 字符串是什么?(只填写数字,不填写空格!根据相关知识进行实际操作,一直输入 c 直到 0/1 将第一行完全填满。

weixin_64821608的博客 8126

实战分享:如何用Java调用Doris FE接口实现高效Stream Load数据导入(附完整代码)

本文详细介绍了如何通过Java调用Doris FE接口实现高效的Stream Load数据导入,包含完整代码示例和性能优化技巧。Stream Load作为Doris的高效数据导入方式,相比传统JDBC提升5-10倍速度,适用于大规模数据处理场景,帮助开发者解决高吞吐量数据导入挑战。

weixin_29304985的博客 417

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

SaltStack实战之配置管理-Jinja2模板 1. Salt yaml配置文件使用Jinja2模板介绍 1.1 File状态使用template参数 1.2 模板文件里面变量使用{{ 名称 }} 1.3 变量列表 2. 实战应用

ygqygq2的IT博客 2514

深度学习100例-卷积神经网络(CNN)彩色图片分类 | 第2天

文章目录前期工作设置GPU导入数据标准化可视化构建CNN网络编译训练模型预测模型评估 前期工作 设置GPU 如果使用的是CPU可以忽略这步 import tensorflow as tf gpus = tf.config.list_physical_devices("GPU") if gpus: gpu0 = gpus[0] #如果有多个GPU,仅使用第0个GPU tf.config.experimental.set_memory_growth(gpu0, True) #设置GPU显存用量

“365天深度学习训练营”报名进行中~ 7853

saltstack之jinja

SaltStack是使用的YAML语言来将sls文件解释成它自己可以识别的内容,Jinja是一种基于PYTHON的模板引擎,在SLS文件里可以直接使用jinja模板来做一些操作,比如当我们需要对多台服务器做一些apache服务配置时,由于每台服务器信息不一样(比如ip不同),如果为每台服务器去创建SLS文件就不太合理,而通过jinja模板则可以用生成变量→读取变量的方式来为每个服务器...

Jian Sun_的博客 817

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

1.saltstack使用指南:saltstack的介绍和安装

saltstack的介绍和安装saltstack介绍salt,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。saltstack 和puppet的都是进行自动化运维的工具,通过对两者的对比可以发现,puppet强调一切的配置都是资源与资源之间的关系,而且具有严格的配置规范,对于新手来说有一定的学习阻力,salt除了可以进行服

linux_player_c(系统&开发) 5181

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SaltStack的state定义主机状态及Jinja模版的使用

State 是 saltstack 系统中的配置语言,在日常运维中需要编写大量的 state 文件,例如:创建用户、安装软件、配置软件、服务运行等。需要编写一些 state SLs 文件,即状态配置文件去描述和实现相应的功能。state sLs 主要使用 YAML 语言,也可以支持使用 Python 语言编写。例如以下语句,用 yaml 语言描述了一个安装 apache 的 state 模块。apache-install:#ID声明,ID必须唯一pkg.installed:#state 状态声明。

henanchenxuyuan的博客 1574

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Saltstack 中Jinja模板的使用

一、Jinja模板简介 Jinja是一种基于python的模板引擎,在SLS文件里可以直接使用jinja模板来做一些操作。 通过jinja模板可以为不同服务器定义各自的变量。 两种分隔符: {% … %} 和 {{ … }},前者用于执行诸如 for 循环 或赋值的语句,后者把表达式的结果打印到模板上(引用)。 二、Jinja模板使用方式 使用控制结构包装条件 Jinja最基本的用法是使用控制结构包装条件: [root@server1 salt]# vim test.sls [root@server1 sa

qq_36417677的博客 483

saltstack中jinja模板使用详解

一、jiaja模板简介 Jinja是一种基于python的模板引擎,在SLS文件里可以直接使用jinja模板来做一些操作。通过jinja模板可以为不同服务器定义各自的变量。两种分隔符: {% … %} 和 {{ … }},前者用于执行诸如 for 循环 或赋值的语句,后者把表达式的结果打印到模板上 二、jinja模板使用方式 结合apache的部署来理解jiaja模板: (1)install.s...

枝子的博客 610

saltstack的JINJA模块

1.调用jinja (1)脚本指定jinja参数 [root@server1 apache]# pwd /srv/salt/apache [root@server1 apache]# vim install.sls httpd-install: pkg.installed: - pkgs: - httpd - php - httpd-tools ...

qwqq233的博客 375

Saltstack_使用指南12_配置管理-jinja模板

1. 说明: 下文的案例是根据上一篇文章进行的修改。因此请优先读取上一章博文内容《Saltstack_使用指南11_配置管理-状态之间依赖关系》 2. 主机规划 服务器名称 操作系统版本 内网IP 外网IP(模拟) Hostname 部署模块 salt100 CentOS7.5 172.16.1.100 10.0.0.100 salt100 salt-master、salt-min...

踏歌行的专栏 618

saltstack的jinja模块应用

######jinja模块 有多种方式,以apache的ip和端口为例 直接在apache下的install.sls中修改,加入port:80即可 将端口和ip定义成变量的形式:port:{{ port}} host:{{ host }} 在httpd.conf中也要写入相应的变量 将变量定义到当前目录下的lib.sls中:{% set host=‘172.25.58.2’ %} 在instal...

qq_42311209的博客 288

saltstack之JINJA模块

我们在之前的ansible模块中使用过模板j2,他其实就是jinja模块的一种。应该称为jinja2,那么我们在saltctack中也是有模板的,它使用的就是jinja模块 一、调用jinja 1.脚本指定jinja参数 [root@server1 pillar]# cd /srv/salt/apache/ [root@server1 apache]# vim install.sls http...

weixin_42446031的博客 324

saltstack中的jinja模块

1.编辑文件,添加jinja模块 [root@server1 apache]# cat install.sls install-apache: pkg.installed: - pkgs: - httpd file.managed: - name: /etc/httpd/conf/httpd.conf - source: salt://apache/...

清风 236

saltstack中的grains和jinja使用

Grains是SaltStack的一个组件,存放在SaltStack的minion端。 当salt-minion启动时会把收集到的数据静态存放在Grains当中,只有当 minion重启时才会进行数据的更新。 由于grains是静态数据,因此不推荐经常去修改它。 应用场景: 信息查询,可用作CMDB。 在target中使用,匹配minion。 在state系统中使用,配置管理模块。 方法1 在/etc/salt/minion中定义: #vim /etc/salt/minion grains: role

weixin_51129538的博客 381

saltstack(3)JINJA模板

文章目录1.JINJA模板2.变量引用 1.JINJA模板 [root@server11 salt]# pwd /srv/salt [root@server11 salt]# vim test.sls [root@server11 salt]# cat test.sls /mnt/testfile: file.append: {% if grains['fqdn'] == 'server12' %} - text: server12 {% elif grains['fqdn.

qiao_qing的博客 230

SaltStack中的jinja模板

23214

Jelly 450
上一篇: 8.python学习笔记:python发送邮件
下一篇: 4.saltstack使用指南:使用saltstack部署zabbix
linux_player_c
博客等级 码龄13年 214粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值