需求描述

  在使用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模板,将变量值增加到配置文件中?通过引用变量值修改配置文件?的更多相关文章

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

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

  2. SaltStack配置管理-jinja模板

    上一篇:SaltStack配置管理-状态间关系 需求:需要apache配置文件里面监听的端口是每个minion本地的地址 saltstack默认的模板是jinjia模板 参考文档:http://doc ...

  3. VUE依赖webpack分别给开发环境和生产环境配置不同的常量值并在项目中动态引用

    当在开发和产品上线的时候,我们经常会遇到在同一个地方由于环境的不同而地址也不同的情况,这时候如果在代码中将该地址写死,那势必会造成上线时手动改动,多人开发及多处使用该地址难以维护等一系列问题,为避免这 ...

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

    问题描述: 通过saltstack的jinja模板方式,可以将变量的值写入到配置文件,即动态获取的方式.这里介绍,通过执行salt函数来获取值的方式. 演示: 1.通过在sls中,增加jinja的模板 ...

  5. SaltStack应用grains和jinja模板-第四篇

    目标需求 1.使用jinja模板让apache配置监听本地ip地址 2.了解grains的基本使用方法 说明:实验环境是在前面的第二篇和第三篇基础上完成 实现步骤 使用grains获取ip地址信息 使 ...

  6. SaltStack 使用 Jinja2 模板

    Jinja2 是基于 python 的一个模板引擎,如下,使用 Jinja2 实现根据不同的操作系统分发不同的文件: [root@localhost ~]$ cat /srv/salt/test.sl ...

  7. 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 ...

  8. 自动化运维工具saltstack04 -- 之jinja模板

    jinjia模板 需求:想让saltstack的file模块分发到minion端的配置文件监听minion端的IP和端口,如何用变量实现?看下面!! 1.jinja模板加grains使apache监听 ...

  9. [salt] jinja模板中变量使用pillar的几种方法

    先转载下jinja模板中使用变量的方法,后文主要讲解pillar的变量使用方法 一.jinja模版的使用方法: 1.file状态使用template参数 - template:jinja 2.模版文件 ...

随机推荐

  1. ae:org.apache.shiro.authc.AuthenticationException: Authentication token of type [class org.apache.shiro.authc.UsernamePasswordToken] could not be authenticated by any configured realms. Please ensure

    看问题是说要保证有一个realm正确,但是之前运行就一直成功,后来就不行了.有可能是:以为自己输入了正确的用户名和密码,结果是因为用户名前面添加了空格导致了这个错误发生. 实质问题是:你输入的用户名和 ...

  2. 基于ELK5.1(ElasticSearch, Logstash, Kibana)的一次整合

    前言开源实时日志分析ELK平台(ElasticSearch, Logstash, Kibana组成),能很方便的帮我们收集日志,进行集中化的管理,并且能很方便的进行日志的统计和检索,下面基于ELK的最 ...

  3. openstack之Neutron网络模式vlan,gre,vxlan详解

    第一:neutron openvswitch + vlan虚拟网络 一:基础知识 vlan基础知识 1.vlan介绍 1.1:首先说下lan,LAN 表示 Local Area Network,本地局 ...

  4. poj3259 Wormholes(Bellman-Ford判断负圈)

    https://vjudge.net/problem/POJ-3259 一开始理解错题意了,以为从A->B一定得走路,B->A一定得走虫洞.emmm其实回来的时候可以路和虫洞都可以走,只要 ...

  5. ssh以root用户远程登录失败

    参考文献: http://blog.csdn.net/lichangzai/article/details/39379153 http://blog.csdn.net/yasi_xi/article/ ...

  6. Win10注册表无法保存对权限所作的更改拒绝访问

    在对系统的安全控制得越来越多的情况下,要对注册表的关键数据进行修改是件挺麻烦的事,时不时会弹出无法保存对xxxxxx权限所作的更改,拒绝访问,操作产生错误,操作出现错误的提示,这时怎么办呢?这里就最近 ...

  7. u-boot-2018-09 分析 v1

    下载地址: https://pan.baidu.com/s/1YcQ1XpFyzmNcr1afw1RhgQ 或者:

  8. Socket.IO学习之基础入门

    原文:http://blog.csdn.net/weichuang_1/article/details/48831957 这里贴出Socket.IO官网 一.Socket.IO的介绍 Socket.I ...

  9. 00、Word Count

    1.开发环境 1.eclipse-jee-neon-3 2.scala-ide:http://download.scala-ide.org/sdk/lithium/e46/scala212/stabl ...

  10. jQuery数据转换与提交

    json2.js序列化,即JSON对象转换成String字符串: JSON.stringify({ id: 1, name: 'jsons' }); 反序列化,即String转JSON对象: JSON ...