5.saltstack配置管理YAML和jinja

本文介绍了如何使用SaltStack进行配置管理,重点讲解了YAML的三大规则:缩进、冒号后的空格以及短横线表示列表。同时,通过实例展示了Jinja模板在文件状态管理中的应用,包括模板文件中变量的引用和变量列表的设定。通过执行Salt的状态命令,成功更新了系统的resolv.conf文件,并验证了变量的正确应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、系统初始化。  2、功能模块。  3、业务模块。




yaml语法三大规则
规则一:缩进

  yaml使用一个固定的缩进风格表示数据层结构关系,Saltstack需要每个缩进级别由两个空格组成。============注意:一定不能使用tab键==================

规则二:冒号

  yaml:
  mykey: my_value
  每个冒号后面一定要有一个空格(以冒号结尾不需要空格,表示文件路径的模版可以不需要空格)

规则三:短横线
 想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一个列表的一部分
my_dictionary:
  - list_value_one
  - list_value_two
  - list_value_three


Jinja:
1、File状态使用template参数
          - template: jinja
        
2、模板文件里面变量使用{{名称}}
          {{PORT}}

3、变量列表
          - defaults:
          PORT:8080          
例如:(按上一篇的稍作修改)
[root@salt-master ~]# cat /srv/salt/base/dns.sls
/etc/resolv.conf:
  file.managed:
    - source: salt://files/resolv.conf
    - user: root
    - group: root
    - mode: 644
    - template: jinja     #dns.sls 文件添加以下三行
    - defaults:
      DNS_SERVER: 192.168.91.88  #变量
[root@salt-master ~]# cat /srv/salt/base/files/resolv.conf
# Generated by NetworkManager
search localdomain 2018.com
nameserver 192.168.91.2
nameserver {{ DNS_SERVER }}  #使用大括号引用变量

[root@salt-master ~]# salt '*' state.highstate     #执行高级命令<==============================
salt-master.2018.com:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 04:51:33.158522
    Duration: 448.0 ms
     Changes:   
              ----------
              diff:
                  ---
                  +++
                  @@ -1,4 +1,4 @@
                   # Generated by NetworkManager
                   search localdomain 2018.com
                   nameserver 192.168.91.2
                  -nameserver 8.8.8.8
                  +nameserver 192.168.91.88  <===============已变更

Summary
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
salt-minion.2018.com:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 04:51:39.000945
    Duration: 35.955 ms
     Changes:   
              ----------
              diff:
                  ---
                  +++
                  @@ -1,4 +1,4 @@
                   # Generated by NetworkManager
                   search localdomain 2018.com
                   nameserver 192.168.91.2
                  -nameserver 8.8.8.8
                  +nameserver 192.168.91.88  <===================已变更

Summary
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1

验证:
[root@salt-minion ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88
[root@salt-master ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88





saltstack要知道使用变量,不然学了没用。
例如:
[root@salt-master ~]# cat /srv/salt/base/files/resolv.conf
# Generated by NetworkManager
#{{ grains['fqdn_ip4'] }}  #使用这个简单的变量
search localdomain 2018.com
nameserver 192.168.91.2
nameserver {{ DNS_SERVER }}
[root@salt-master ~]# salt '*' state.highstate
salt-minion.2018.com:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 05:01:35.389014
    Duration: 51.727 ms
     Changes:   
              ----------
              diff:
                  ---
                  +++
                  @@ -1,4 +1,5 @@
                   # Generated by NetworkManager
                  +#['192.168.91.133']   #变量已生效
                   search localdomain 2018.com
                   nameserver 192.168.91.2
                   nameserver 192.168.91.88

Summary
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
salt-master.2018.com:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 05:01:41.135629
    Duration: 417.016 ms
     Changes:   
              ----------
              diff:
                  ---
                  +++
                  @@ -1,4 +1,5 @@
                   # Generated by NetworkManager
                  +#['192.168.91.134']    #变量已生效
                   search localdomain 2018.com
                   nameserver 192.168.91.2
                   nameserver 192.168.91.88

Summary
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1


最后验证:
[root@salt-minion ~]# cat /etc/resolv.conf
# Generated by NetworkManager
#['192.168.91.133']
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88

[root@salt-master ~]# cat /etc/resolv.conf
# Generated by NetworkManager
#['192.168.91.134']
search localdomain 2018.com
nameserver 192.168.91.2
nameserver 192.168.91.88

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值