美文网首页
通过yaml渲染salt配置

通过yaml渲染salt配置

作者: 梦想做小猿 | 来源:发表于2017-03-16 18:07 被阅读0次

说明

yaml模块类似xml的标记语言,一般用在配置文件中,比如salt

实例

yaml文件(salt配置文件为例):

[root@salt-master ~]# cat master
file_roots:
  base:
    - /srv/salt/base
    - /srv/salt/base1
  prod:
    - /srv/salt/prod
pillar_roots:
  base:
    - /srv/pillar/base
  prod:
    - /srv/pillar/prod

要在配置文件中添加主机组:

[root@salt-master ~]# cat salt-conf.py
#!/usr/bin/env python
#coding=utf8

import yaml


with open("master") as f:

    salt_conf = yaml.load(f)

    salt_conf["nodegroups"] = {'web-app':"L@salt-node1,salt-node2","db-mysql":"salt-node1","redis":"salt-node2"}


with open("salt.conf","w") as f:

    yaml.dump(salt_conf,f,default_flow_style=False)

生成的salt.conf配置文件:

file_roots:
  base:
  - /srv/salt/base
  - /srv/salt/base1
  prod:
  - /srv/salt/prod
nodegroups:
  db-mysql: salt-node1
  redis: salt-node2
  web-app: L@salt-node1,salt-node2
pillar_roots:
  base:
  - /srv/pillar/base
  prod:
  - /srv/pillar/prod

代码解释

  • yaml.load: 将yaml配置文件加载成一个字典对象
  • salt_conf["nodegroups"] = xxxx:添加需要增加的配置项到生成的字典对象中
  • yaml.dump(salt_conf,f,default_flow_style=False):将新增后的字典对象dump成配置文件

注意:yaml.dump方法中添加default_flow_style=False,如果没有该参数,则dump成配置文件后,yaml文件不会解析列表,如下:

file_roots:
  base: [/srv/salt/base, /srv/salt/base1]
  prod: [/srv/salt/prod]
pillar_roots:
  base: [/srv/pillar/base]
  prod: [/srv/pillar/prod]

扩展:在运维平台中,salt rest api tgt参数只能指定一台机器和salt主机组,不能指定具体主机列表,所以要使用salt,可以根据cmdb中的分组来获取主机列表,然后渲染到salt配置文件

相关文章

  • 通过yaml渲染salt配置

    说明 yaml模块类似xml的标记语言,一般用在配置文件中,比如salt 实例 yaml文件(salt配置文件为例...

  • Sharding-JDBC-读写分离

    不使用Spring 引入Maven依赖 基于Java编码的规则配置 基于Yaml的规则配置 或通过Yaml方式配置...

  • 四、Salt State

    Salt state的核心是SLS,或者叫Salt State文件。SLS文件采用的数据格式是YAML。SLS描述...

  • 173SaltStack 运维通关手册--SaltStack S

    配置和启用 Salt State Tree Salt State 系统的核心是 SLS 或 Salt State ...

  • Kubernetes 常用命令

    生成配置文件 进入容器 通过yaml文件创建 查看服务以及使用的端口 获取镜像列表 通过yaml文件删除: 查看单...

  • 通过snakeyaml解析yaml文件

    scala 读取yaml 配置文件 配置maven文件pom.xml 创建yaml 文件config.yaml ...

  • fabric-1.0动态加入组织

    fabric的组织配置信息一般是提前写在configtx.yaml文件中的,通过configtx.yaml生成系统...

  • 3.Spring Boot - 项目属性(properties)

    知识点 Properties YAML 说明 更推荐YAML配置形式,本文只讨论YAML形势下配置。 思路 创建配...

  • Flink 指标(二)

    报告(Reporter) 通过 conf/flink-conf.yaml 文件配置一个或多个 Reporters ...

  • R 包学习-yaml

    yaml 配置文件管理包 http://blog.fens.me/r-yaml 前言 YAML是专门用来写配置文件...

网友评论

      本文标题:通过yaml渲染salt配置

      本文链接:https://www.haomeiwen.com/subject/pabjnttx.html