问题描述

  通过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: root
- mode:
- template: jinja
- defaults:
Listen_Port:
OS: {{ grains['os'] }}
HW_ADDR: {{ salt['network.hw_addr']('eth1') }}

2.修改配置文件httpd.conf,增加引用变量HW_ADDR

# Hard Addr is {{ HW_ADDR }}   #应用变量的值。

3.执行状态模块,进行配置

[root@testvm01 lamp]# salt 'testvm03' state.sls lamp.lamp
testvm03:
----------
ID: lamp-pkgs
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: ::54.896384
Duration: 484.232 ms
Changes:
----------
ID: apache-config
Function: file.managed
Name: /etc/httpd/conf/httpd.conf
Result: True
Comment: File /etc/httpd/conf/httpd.conf updated
Started: ::55.383683
Duration: 67.694 ms
Changes:
----------
diff:
---
+++
@@ -, +, @@
# for a discussion of each configuration directive.
#
# OS is RedHat
-# Hard Addr is :::7c:9c:2d
+# Hard Addr is :::f1:2e:e9 #获取到了网卡的信息,并且增加到该配置文件中
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
# consult the online docs. You have been warned.
----------
ID: php-config
Function: file.managed
Name: /etc/php.ini
Result: True
Comment: File /etc/php.ini is in the correct state
Started: ::55.451548
Duration: 11.319 ms
Changes:
----------
ID: apache-service
Function: service.running #检测到配置文件发生了变化,就reload配置文件
Name: httpd
Result: True
Comment: Service reloaded
Started: ::55.498927
Duration: 82.003 ms
Changes:
----------
httpd:
True
----------
ID: mysql-service
Function: service.running
Name: mysqld
Result: True
Comment: The service mysqld is already running
Started: ::55.581261
Duration: 106.275 ms
Changes: Summary for testvm03
------------
Succeeded: (changed=)
Failed:
------------
Total states run:
Total run time: 751.523 ms

jinja中调用salt函数的语法:

# The following two function calls are equivalent.
{{ salt['cmd.run']('whoami') }}
{{ salt.cmd.run('whoami') }}

注意:第一中写法,参数要有括号,并且用单引号,否则会报错。

文档创建时间:2019年3月11日17:10:01

saltstack在jianja模板中,执行salt函数来获取某些变量的值,并且将配置写入到配置文件中?的更多相关文章

  1. python中如何调用函数交换两个变量的值

    python中如何调用函数交换两个变量的值 所有代码来在python3.7.1版本实现 以下实例通过用户输入两个变量,并相互交换:  方法一: def swap(a,b): # 创建临时变量,并交换 ...

  2. JAVA中执行JavaScript代码并获取返回值

    JAVA中执行JavaScript代码并获取返回值 场景描述 实现思路 技术要点 代码实现 测试方法 运行结果 改进空间 场景描述 今天在CSDN上偶然看到一个帖子对于一段字符串 “var p=‘xx ...

  3. saltstack通过jinja模板,grains方式将配置的变量值写入到配置文件中?

    需求描述: 在通过saltstack进行jinja模板获取值的时候,可以通过grains的方式,获取一些操作系统相关的信息,比如,OS,ip地址等,在这里演示下,做个记录. 演示: 1.修改sls文件 ...

  4. 样条函数后续(java)--可在hive中执行的函数

    之前写的样条插值算法只能在本地执行,但是我想要的是可在hive中执行的jar包,为了符合我的要求,经过痛苦.气愤.悲伤等一系列过程,终于实现了: 想要实现可在hive中执行的jar包,以下是具体步骤: ...

  5. a标签中执行js函数

    在a标签中调用js函数最适当的方法推荐使用: 1.a href="javascript:void(0);" onclick="js_method()" 这种方法 ...

  6. eclipse 中执行 main 函数如何添加参数

    我们通常执行 main 函数都是直接在类界面 右键 选择 Run As --> Java Application 但是如何 执行时带有参数呢? 右键 --> Run As --> R ...

  7. js的for循环中出现异步函数,回调引用的循环值始终是最后的值

    一.问题 今天工作中解决bug发现是由“for循环的异步函数,回调引用的循环值始终是最后的值”的现象导致的,如: for (var i = 0; i < files.length; i++) { ...

  8. shell脚本 在后台执行de 命令 >> 文件 2>&1 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

    命令 >> 文件 2>&1或命令 &>> 文件 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面) # ll >>aaa 2> ...

  9. PHP常用的变量检查函数和获取某个变量的类型

    定义变量 $a = 100; 1.gettype($a) #检查变量的类型 输出integer 2.settype($a, 'double') #设置$a变量为double类型 3. is_array ...

随机推荐

  1. 多个ip以逗号分隔

    /^(((?:(?:1[0-9][0-9]\.)|(?:2[0-4][0-9]\.)|(?:25[0-5]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){3}(?:(?:1[0-9 ...

  2. Linux之nginx服务

    作业一:nginx服务 1.二进制安装nginx包 2.作为web服务修改配置文件 3.让配置生效,验证配置 [root@localhost ~]# yum -y install epel-relea ...

  3. ESP8266 NOOS SDK libat.a Functions

    at_baseCmd.o custom_infoat_baseCmd.o at_exeCmdNullat_baseCmd.o at_setupCmdEat_baseCmd.o at_exeCmdRst ...

  4. React进阶之高阶组件

    前言 本文代码浅显易懂,思想深入实用.此属于react进阶用法,如果你还不了解react,建议从文档开始看起. 我们都知道高阶函数是什么, 高阶组件其实是差不多的用法,只不过传入的参数变成了react ...

  5. sshd服务

    SSHD服务 介绍:SSH 协议:安全外壳协议.为 Secure Shell 的缩写.SSH 为建立在应用层和传输层基础上的安全协议. 作用 sshd服务使用SSH协议可以用来进行远程控制, 或在计算 ...

  6. 【jvm】windows下查看java进程下多线程的相关信息

    微软工具:Process Explorer v15.3 下载地址:http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx 参考教程: ...

  7. Node + Selenium使用小结

    可参考网上的步骤进行操作.例如这篇文章:https://wangheng3751.github.io/2018/01/17/selenium/ 1.安装Node.js,去官网下载最新版本的Node.j ...

  8. MultipartFile文件编码判断

    MultipartFile文件编码判断 搜索:Java 判断文件的字符集编码 https://blog.csdn.net/top_code/article/details/8891796 但是在Mul ...

  9. C# System.Threading.AutoResetEvent

    表示线程同步事件在一个等待线程释放后收到信号时自动重置. using System; using System.Threading; // Visual Studio: Replace the def ...

  10. Linux学习必备

    17,继往开来 实践是检验真理的唯一标准!  ---运维技术组----mvpbang #开源代码 https://github.com/    #目前最受欢迎的 https://gitee.com/  ...