如何在支柱中拥有可以被覆盖的基础值?

2024-04-24

我想将所有 Salt 文件(支柱、状态、数据文件等)存储在 git 存储库中,以便可以在多个不同的部署上克隆该存储库。

然后我希望能够更改某些支柱设置的值,例如路径名或密码,但无需编辑版本控制中的原始文件(即这些修改仅是本地的,不一定是版本化的)。

我希望能够从原始存储库中提取新版本(例如添加新的支柱和状态定义)而不丢失自定义值。

例如。 “基本”或“默认”支柱文件将具有如下设置:

service:
  dir: /var/opt/myservice
  username: myuser
  password: mypassword

我想在另一个文件中自定义一些设置,而不更改基本文件:

service:
  dir: /mnt/data/myservice
  password: secret_password

修改后的设置应优先于基本/默认设置。

是否可以通过使用环境(例如“基本”环境和“自定义”环境)来做到这一点?

或者也许通过包含这些自定义支柱文件?

该文档似乎表明覆盖支柱设置没有固定的顺序。


首先让我建议一种将原始文件和自定义设置保留在 git 存储库中的方法。请参阅下文如何使用 git 外部的文件覆盖设置。

设置 Git 支柱

我假设所有文件都存储在 git 中像这里描述的那样的柱子 https://docs.saltstack.com/en/latest/ref/pillar/all/salt.pillar.git_pillar.html。我这里使用的是 salt 版本 2015.8 的语法。

ext_pillar:
  - git:
    - master https://gitserver/git-pillar.git:
      - env: base

在 top.sls 文件中,您可以列出不同的 SLS 文件。它们将按照顶部文件中列出的顺序相互覆盖:

# top.sls
base:
  '*':
     standard
  '*qa'
     qaservers
  'hostqa':
     hostqaconfig

这将适用于所有服务器:

# standard.sls
test:
  setting1: A
  setting2: B

这将适用于名称以“qa”结尾的所有服务器:

# qaservers.sls
test:
  setting2: B2

这将适用于名为“hostqa”的服务器:

# hostqa.sls:
test:
  setting1: A2

命令salt hostqa saltutil.refresh_pillar and salt hostqa pillar.data然后将显示值 A2 和 B2,因为它们已全部合并在一起。

由于这无需指定环境即可工作,因此我建议不要在此处使用环境。

覆盖 Git 之外的一些本地设置

要在本地覆盖某些设置,您可以添加另一个外部支柱。最简单的之一是cmd_yaml这将运行一个命令(这里:cat)并将输出与当前支柱合并:

ext_pillar:
  - git:
    - master https://gitserver/git-pillar.git:
      - env: base
  - cmd_yaml: cat /srv/salt/local_override.sls

所有外部支柱都按照配置文件中列出的顺序执行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在支柱中拥有可以被覆盖的基础值? 的相关文章

  • SaltStack之salt-ssh

    salt ssh介绍 salt ssh可以让我们不需要在受控机上安装salt minion客户端也能够实现管理操作 salt ssh特点 1 远程系统需要Python支持 xff0c 除非使用 r选项发送原始ssh命令 2 salt ssh
  • SaltStack部署

    目录 一 SaltStack简介 1 基本简介 2 通信方式 3 功能简介 二 资源获取 1 官网地址 2 阿里云地址 三 部署 1 配置环境说明 2 资源配置 一 SaltStack简介 1 基本简介 SaltStack是一种新型的基础设
  • SaltStack 企业级自动化运维实战

    一 SaltStack 概述 1 SaltStack 简介 SaltStack是一个服务器基础架构集中化管理平台 具备配置管理 远程执行 监控等功能 一般可以理解为简化版的puppet和加强版的func SaltStack基于Python语
  • saltstack安装

    ubuntu install 1 ppa install sudo add apt repository ppa saltstack salt sudo apt get update sudo apt get install salt ma
  • saltstack匹配minion以及自定义用户组nodegroup

    转载 http blog itpub net 30129545 viewspace 1456748 前提 操作在master在进行 minion id minion的唯一标示 默认情况minion id是minion的主机名 FQDN 你可
  • SaltStack常用模块

    SaltStack常用模块 SaltStack模块介绍 Module是日常使用SaltStack接触最多的一个组件 其用于管理对象操作 这也是SaltStack通过Push的方式进行管理的入口 比如我们日常简单的执行命令 查看包安装情况 查
  • SaltStack实现etcd自动扩容

    一 ETCD 概述 1 ETCD 简介 ETCD是用于共享配置和服务发现的分布式 一致性的KV存储系统 该项目目前最新稳定版本为2 3 0 ETCD是CoreOS公司发起的一个开源项目 授权协议为Apache 提供配置共享和服务发现的系统比
  • SaltStack 自动化运维详解

    一 自动化运维工具对比 使用所需软件配置单个服务器是一项相当简单的任务 但是 如果许多服务器需要安装相同或相似的软件和配置 则该过程将需要大量的工时才能完成 这会耗尽您本已紧张的资源 如果没有某种形式的自动化 这项任务几乎无法完成 考虑到这
  • saltstack+zabbix

    环境 server1 172 25 60 1 salt master salt minion zabbix server server2 172 25 60 2 salt minion zabbix agent 1 软件包安装过程存在许多依
  • saltstack部署MySQL主从

    saltstack部署MySQL主从 1 目录结构 2 编写状态文件 2 1 main sls文件内容 2 2 master sls的文件内容 2 3 slave sls文件内容 2 4 grant mysql sls文件内容 2 5 ma
  • saltstack架构拓展syndic

    架构 server1 master 写好httpd nginx 等salt server2 3 minion server4 top master server1 salt key d server4 server4 vim etc sal
  • SaltStack:条件包括:如果为空则出错

    我有一个条件包含 如下所示 include if CONDITION A foo bar endif if CONDITION B blu bla endif 这在大多数情况下都有效 但如果 CONDITION A 和 CONDITION
  • 将公式与 saltstack 一起使用

    我是 saltstack 的新手 我想使用 saltstack 公式安装 postgres 或 apache 或其他任何东西 我从 git 下载了 repo git clone https github com saltstack form
  • 防火墙上需要哪些开放端口才能允许 salt-stack 远程执行?

    saltstack 上的文档似乎不清楚 salt master gt salt minion 需要哪些端口 显然不需要 它建议只需要从 salt minion gt salt master 打开端口 看 http docs saltstac
  • 跟踪 Salt Minion 上的命令失败

    我过去一个月一直在用盐 每当我运行命令时说sudo salt test ping 然后 master ping 所有 minion 响应是所有已启动并运行的 minion 的列表 输出看起来像这样 minion 1 true minion
  • 如何与盐师沟通

    我正在尝试从 salt minion 访问 salt master 但是 我无法获得 salt master 的密钥 在我的虚拟机上 我安装了salt master在我的 Windows 上 我安装了salt minion 我已经在我的mi
  • 检查文件是否存在并创建符号链接

    我想做这样的事情 如果文件 A 存在或者没有符号链接 B 我想创建一个符号链接 B gt A 现在我有 B file symlink target A exists name A 但这很糟糕 它检查不到我想要的东西 我怎样才能用盐实现这个简
  • salt-stack highstate - 查找慢状态

    运行初始安装大约需要 20 分钟 运行salt call state highstate大约需要6分钟 这并非不合理 但我想加快速度 但我不知道如何找到最慢的状态 除了用秒表观看屏幕 6 分钟之外 还有什么方法可以找到每个状态运行需要多长时
  • 公式提供属性默认值的最佳方式是什么?

    Chef 有一个非常详尽 也许太多 的食谱方案来提供属性的默认值 我认为 Puppet 对类参数做了类似的事情 默认值通常进入params pp 有了盐 我就看到了 在字典 支柱查找中指定默认值 the grains filter by将默
  • Salt 和 Python 的 YAML 语法

    这之间有什么区别 dic1 subdict1 1 value11 1 subdict1 2 value1 2 cubdict1 3 value1 3 和这个 dict2 subdict2 1 value2 2 subdict2 1 valu

随机推荐