saltstack通过jinja模板,将变量值增加到配置文件中?通过引用变量值修改配置文件?
需求描述:
在使用saltstack的时候,有的时候,需要根据不同的变量来增加配置,比如,bind,监听端口,这些都可以通过变量写入,并且在配置的时候引用,下面是一个例子,用来演示,如何使用jinja模板,在state模块中使用。
演示:
1.编写sls及saltstack的状态文件
lamp-pkgs:
pkg.installed:
- pkgs:
- httpd
- php
- mysql
- mysql-server
- php-mysql
- php-cli
- php-mbstring apache-config:
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://lamp/files/httpd.conf
- user: root
- group: root
- mode: 644 php-config:
file.managed:
- name: /etc/php.ini
- source: salt://lamp/files/php.ini
- user: root
- group: root
- mode: 644 apache-service:
service.running:
- name: httpd
- enable: True
- reload: True
- watch: #监控,如果httpd的配置文件发生了变化,那么就对httpd服务进行reload操作。
- file: apache-config
mysql-service:
service.running:
- name: mysqld
- enable: True
- reload: True
备注:该sls状态文件的主要作用就是,安装LAMP的环境,并且启动具体的服务。
2.将httpd的配置文件作为模板文件,sls中写入变量
apache-config:
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://lamp/files/httpd.conf
- user: root
- group: root
- mode:
- template: jinja #将httpd.confg文件作为jinja模板文件
- defaults:
Listen_Port: 89 #指定具体的变量,也就是参数,也可以指定多个,在下一行
3.修改原配置文件httpd.conf,加入引用变量
[root@testvm01 lamp]# vi files/httpd.conf #对以下的文件进行修改。
#Listen 12.34.56.78:
Listen {{ Listen_Port }}
备注:这里的意思,就是配置文件httpd.conf会引用lamp.sls文件中列出的变量值
4.通过state模块,进行配置
[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: 16:14:17.055138
Duration: 483.099 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: 16:14:17.541277
Duration: 66.713 ms
Changes:
----------
diff:
---
+++
@@ -133,7 +133,7 @@
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
#Listen 12.34.56.78:80
-Listen 87 #diff命令,检测到监听端口的变化
+Listen 89
#
# Dynamic Shared Object (DSO) Support
----------
ID: php-config
Function: file.managed
Name: /etc/php.ini
Result: True
Comment: File /etc/php.ini is in the correct state
Started: 16:14:17.608216
Duration: 11.019 ms
Changes:
----------
ID: apache-service
Function: service.running
Name: httpd
Result: True
Comment: Service reloaded #检测到配置文件发生变化之后,进行了reload操作
Started: 16:14:17.653648
Duration: 81.143 ms
Changes:
----------
httpd:
True
----------
ID: mysql-service
Function: service.running
Name: mysqld
Result: True
Comment: The service mysqld is already running
Started: 16:14:17.735066
Duration: 96.421 ms
Changes: Summary for testvm03
------------
Succeeded: 5 (changed=2)
Failed: 0
------------
Total states run: 5
Total run time: 738.395 ms
5.检查testvm03主机上的配置文件的状态和服务状态
[root@testvm03 ~]# grep ^Listen /etc/httpd/conf/httpd.conf
Listen 89
[root@testvm03 ~]# service httpd status
httpd (pid 1139) is running...
[root@testvm03 ~]# netstat -ntlp | grep httpd
tcp 0 0 :::89 :::* LISTEN 1139/httpd
备注:发现配置文件已经修改过来了,并且配置文件也进行了重新加载。达到了,通过引用变量的方法获取变量值来修改配置的方法,httpd.conf中不在是固定的写法,而是通过变量的值来获取某个值。
文档创建时间:2019年3月11日16:18:17
saltstack通过jinja模板,将变量值增加到配置文件中?通过引用变量值修改配置文件?的更多相关文章
- saltstack通过jinja模板,grains方式将配置的变量值写入到配置文件中?
需求描述: 在通过saltstack进行jinja模板获取值的时候,可以通过grains的方式,获取一些操作系统相关的信息,比如,OS,ip地址等,在这里演示下,做个记录. 演示: 1.修改sls文件 ...
- SaltStack配置管理-jinja模板
上一篇:SaltStack配置管理-状态间关系 需求:需要apache配置文件里面监听的端口是每个minion本地的地址 saltstack默认的模板是jinjia模板 参考文档:http://doc ...
- VUE依赖webpack分别给开发环境和生产环境配置不同的常量值并在项目中动态引用
当在开发和产品上线的时候,我们经常会遇到在同一个地方由于环境的不同而地址也不同的情况,这时候如果在代码中将该地址写死,那势必会造成上线时手动改动,多人开发及多处使用该地址难以维护等一系列问题,为避免这 ...
- saltstack在jianja模板中,执行salt函数来获取某些变量的值,并且将配置写入到配置文件中?
问题描述: 通过saltstack的jinja模板方式,可以将变量的值写入到配置文件,即动态获取的方式.这里介绍,通过执行salt函数来获取值的方式. 演示: 1.通过在sls中,增加jinja的模板 ...
- SaltStack应用grains和jinja模板-第四篇
目标需求 1.使用jinja模板让apache配置监听本地ip地址 2.了解grains的基本使用方法 说明:实验环境是在前面的第二篇和第三篇基础上完成 实现步骤 使用grains获取ip地址信息 使 ...
- SaltStack 使用 Jinja2 模板
Jinja2 是基于 python 的一个模板引擎,如下,使用 Jinja2 实现根据不同的操作系统分发不同的文件: [root@localhost ~]$ cat /srv/salt/test.sl ...
- 5 LAMP配置管理:模块(state、file、pkg、service)、jinja模板、job管理、redis主从
1. 配置管理:state和file https://docs.saltstack.com/en/latest/topics/states/index.html Full list of states ...
- 自动化运维工具saltstack04 -- 之jinja模板
jinjia模板 需求:想让saltstack的file模块分发到minion端的配置文件监听minion端的IP和端口,如何用变量实现?看下面!! 1.jinja模板加grains使apache监听 ...
- [salt] jinja模板中变量使用pillar的几种方法
先转载下jinja模板中使用变量的方法,后文主要讲解pillar的变量使用方法 一.jinja模版的使用方法: 1.file状态使用template参数 - template:jinja 2.模版文件 ...
随机推荐
- 学习Struts--Chap01:了解Struts2
学习之前的一些话: 这是我系统学习Java知识这么久以来第一次接触web框架,很不幸的是刚开始学习它就听到很多人说这个框架现在已经过时了,很多企业现在开发项目几乎不会用这个框架了,就是有用这个框架的项 ...
- JavaScript关于函数对象的一些学习总结
1.概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascrip ...
- 认证鉴权与API权限控制在微服务架构中的设计与实现(四)
引言: 本文系<认证鉴权与API权限控制在微服务架构中的设计与实现>系列的完结篇,前面三篇已经将认证鉴权与API权限控制的流程和主要细节讲解完.本文比较长,对这个系列进行收尾,主要内容包括 ...
- ASP.NET WebAPI数据传输安全HTTPS实战项目演练
一.课程介绍 HTTPS是互联网 Web 大势所趋,各大网站都已陆续部署了 HTTPS . 全站HTTPS时代,加密用户与网站间的交互访问,在客户端浏览器和Web服务器之间建立安全加密通道,一般情况 ...
- 介绍三款串口监控工具:Device Monitoring Studio,portmon,Comspy
在开发上位机下位机通讯程序时,有一个好的监控工具会事半功倍.特在网上找了几款串口监控软件,作了简单对比: 一.Device Monitoring Studio 网址:http://www.hhdsof ...
- Kubernetes基础:Service
本文的试验环境为CentOS 7.3,Kubernetes集群为1.11.2,安装步骤参见kubeadm安装kubernetes V1.11.1 集群 Service 介绍 我们通过Pod.Deplo ...
- 【JVM】垃圾收集器
程序计数器.Java虚拟机栈.本地方法栈分配的内存是确定的,生命周期与线程同样.所以不须要过多考虑回收问题. 而Java堆和方法区仅仅有运行时才知道有哪些对象被创建,须要多少内存,这部分的内存分配和回 ...
- UseSwagger
if [ "$UseSwagger" != "true" ]; then sed -i "s/\"UseSwagger\": tr ...
- Kettle实现数据抽取、转换、装入和加载数据-数据转移ETL工具
原文地址:http://www.xue51.com/soft/5341.html Kettle是来自国外的一款开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,绿色无需 ...
- apache的server-status如何分析的技术说明
XML/HTML代码 Apache Server Status for www.blogguy.cn Server Version: Apache/2.2.9 (Debian) PHP/5.2.6-1 ...