问题描述

  通过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. JS 函数表达式

    定义函数的方式有两种, 一种是函数声明,一种就是函数表达式了 函数声明最常见了, sayHi(); // 函数声明会发生提升 function sayHi () { alert('Hi') } 函数表 ...

  2. UE4入门(三)

  3. JS中的算法与数据结构——排序(Sort)

    排序算法(Sort) 引言 我们平时对计算机中存储的数据执行的两种最常见的操作就是排序和查找,对于计算机的排序和查找的研究,自计算机诞生以来就没有停止过.如今又是大数据,云计算的时代,对数据的排序和查 ...

  4. tensorflow由于未初始化变量所导致的错误

     版权声明:本文为博主原创文章,如需转载请注明出处,谢谢. https://blog.csdn.net/qq_38542085/article/details/78742295 初始代码 import ...

  5. Gradle初识

    一.安装配置 gradle官方网站https://gradle.org/,下载下来是一个压缩包,解压到合适的目录即可,然后配置环境变量(GRADLE_HOME,Path),略去. 二.IDEA配置 N ...

  6. pycharm 注册码/License server 2017年最新

    两种方法: 1.选License server激活,输入:http://idea.imsxm.com 2.2017年激活码 时效1年BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUc ...

  7. 使用AShot进行网页全页截图

    import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.Chrom ...

  8. 《分布式任务调度平台XXL-JOB》

    一.简介 1.1 概述 XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用. 1.2 特性 1.简单:支 ...

  9. 关于Docker目录挂载的总结(转)

    关于Docker目录挂载的总结 Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定. 譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过 ...

  10. 使用 Docker 镜像构建 GO 语言环境

    1. 安装 Docker 我当前使用的系统环境是 CentOS7 ,安装 Docker 使用的命令是 yum install docker*.至于其它系统,可以到百度查找其对应的安装方式. 2. 配置 ...