如何使用 saltstack 模板化 SLS
我正在尝试使用 Mongodb(分片)进行概念验证,并且我希望每次启动新集群时都运行一个命令,而不必在所有 sls 文件中添加行。我当前的初始化如下: 蒙戈副本4:27000 /usr/lib/mongo/init_addshard.js: 命令: - run - user: present Replica4 这个词不是模板化的,我想知道一种能够做到这一点的方法,这样当我启动一个新集群时,我就不必触碰这个文件中的任何内容。 ...
我正在尝试使用 Mongodb(分片)进行概念验证,并且我希望每次启动新集群时都运行一个命令,而不必在所有 sls 文件中添加行。我当前的初始化如下: 蒙戈副本4:27000 /usr/lib/mongo/init_addshard.js: 命令: - run - user: present Replica4 这个词不是模板化的,我想知道一种能够做到这一点的方法,这样当我启动一个新集群时,我就不必触碰这个文件中的任何内容。 ...
我有两个 ssh 密钥,我正尝试将它们部署到我的一个 minions 上。但我似乎无法部署它。它出错了。以下是init.sls主要内容: /xxx/yyy/zzz/id_rsa: file.managed: - source: salt://private/id_rsa /xxx/yyy/zz/id_rsa.pub: file.managed: - source: salt://private/id_rsa.pub 这是我的init.sls状态: ssh: file.managed: - name: {{ pil...
应如何构建 Salt State 文件和 Pillar 配置,以便能够在以下阶段环境中顺利部署各种 minion 角色:开发,质量保证和生产以及功能分支? 我已将我的根状态文件和支柱状态文件排列在与我的 Python 项目源代码不同的存储库中,如下所示: salt-states/ pillar/ web/ init.sls production.sls qa.sls dev.sls db/ ini...
如何使用状态文件清除 salt-minion 上的目录?我想在设置其他主管服务之前删除所有*.conf文件。/etc/supervisord/conf.d/ 以下top.sls配置无效: /etc/supervisor/conf.d/*: file.absent file.remove由于不可用而失败。 ...
我正在开始一个新项目并考虑使用Ansible或者盐用于部署自动化以及可能更复杂的编排(服务器管理和联合)。 我想知道 Salt 和石墨或者芝诺斯或者神经节...使用 Salt0mq连接将数据从 Salt“minions”中继到监控/图形数据库/收集器。 还有其他人看过这个吗? ...
我所在的公司目前正在研究为我们的服务器(所有 Ubuntu/FreeBSD)部署集中式自动化系统(如 Salt 或 Puppet)。我们可能会采用 Salt,但我认为这与我的问题无关。 我的问题是:有没有一种好的方法可以监控机器中未包含在自动化系统中的本地变化? 例如:为了快速修复,有人在给定的机器上启动了一项服务或修改了配置文件。有没有办法使用 Salt/Puppet/whatever 检查这些事情?或者我需要使用 AIDE 等外部程序来实现这一点? ...
我在 Salt 中连接字符串时遇到问题,我想获取一个名为“accesslist”的盐粒,它包含要附加到访问列表的组数组。 {% set access_filter = '(memberOf=CN=bbb,OU=Security,OU=Groups,OU=yyy,DC=xxx,DC=local)' %} {% for acc in grains.accesslist %} {% set access_filter = '(memberOf=CN={{ acc }},OU=Security,OU=Groups,OU=aa,D...
需要跳过 salt 文件中的文件夹,之前从未使用过这些文件夹。我的系统上有以下文件夹结构 /Test /A /B /C Salt State文件显示指令如下: customownergroup: file: - directory - names: - /Test - user: root - group: root - recurse: - user - group 我想使用以下代码为目录“C”申请另一个权限 excludecustomfolder: fil...
我正在尝试将一行回显到 sudoers 文件中,但我无法弄清楚该特定命令所需的正确语法。 gwconfig: cmd.run: {% if grains['ip4_gw'] == '192.168.1.1' %} - name: echo "%account_name ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers {% elif grains['ip4_gw'] == '192.168.1.2' %} - name: echo "not working" >> /...
我正在尝试将 salt-minion 连接到 Salt Master。但是它不起作用。错误在哪里?有什么问题? 从主服务器 ping 到从服务器有效,反之亦然 以下是日志: ** Minion 日志: ** 数控-V-Z 176.111.111 4505 nc: connect to 176.111.111 port 4505 (tcp) failed: No route to host salt-minion-l 调试 [DEBUG ] Reading configuration from /etc/salt/minion [DEBUG ] In...
我在设置盐反应器时遇到了一些麻烦。这是我的配置: reactor: - 'salt/minion/*/start': - /srv/reactor/start.sls 和我的/src/reactor/start.tls: {% set minion_id = data['id'] %} highstate-for-{{ minion_id }}: local.state.apply: - tgt: {{ minion_id }} 我有一台master和一台minion不同的计算机(两台都运行 3006.3,主计算机运行 Alma ...
我有一个 Salt 公式在我的 minions 上运行,它运行一个自定义模块,该模块会访问网络以获取最新版本的 chrome 的一些 JSON 数据。它工作得很好,但我认为最好将它作为 master 上的运行器运行,并将其存储为 pillar 数据以供 minions 访问。这样,我就不需要数百个 minions 不必要地查询网络,而只需要在 master 上查询一次。 我在网上找不到任何有用的信息。这可能吗? def latest(): import json import urllib.request url = 'https...
第一次使用盐栈。 我在三台虚拟机上配置了 salt stack。这三台机器都设置为桥接网络。Centos7(Master)、Centos7(minion)、Ubuntu(minion)。在主服务器上,我使用以下方法安装了更新: sudo rpm --import https://repo.saltproject.io/salt/py3/redhat/7/x86_64/SALT-PROJECT-GPG-PUBKEY-2023.pub curl -fsSL https://repo.saltproject.io/salt/py3/redhat/7/x86_64/...
我通过定义角色来使用 salt,将状态列表映射到要应用这些状态的主机列表: #/srv/pillar/base/top.sls: {% set h = 'host1, host2,' %} 'L@{{ h }}': - roles.Servers {% set h = 'host3, host4,' %} 'L@{{ h }}': - roles.newServers #/srv/salt/base/top.sls: base: 'role:Server': # Mapping a host to a role ca...
我正在尝试应用salt.states.alternatives将我的默认 java 设置为 java 11。但是,我需要输入 openjdk 的完整路径,其中包括每次版本更改时都会更改的版本号(这意味着我必须频繁更新 salt 状态): set-java-11: alternatives.set: - name: java - path: /usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64/bin/java 如果我这样做alternatives --config java,我可...