salt-stack - 在 Salt 的 gitfs 中挂载一个 git 存储库而不搜索状态模块
问题描述
我正在尝试在我的 salt 文件服务器中安装一个带有服务器配置文件(想想 nginx、mysql 等)的存储库,以便能够将这些文件分发给我的奴才(无需在我的所有奴才上检查完整的存储库)。
如果我理解正确:所有gitfs_remotes
将被“扁平化”为一个文件系统结构(我可以在运行salt-run fileserver.file_list
.
让我担心的是,据我所知,Salt 现在也在搜索这个“仅配置文件”存储库以查找状态模块。
有没有办法:
- 将 gitfs 挂载指定为“不搜索 SLS 文件”。
- 在 salt 文件服务器的子目录下挂载实际的 salt state 存储库(包含 my
top.sls
和 state 模块)并将 salt 指向top.sls
其中?
当然,我对这完全是错误方法的可能性持开放态度,我唯一的要求是服务器配置文件(再次,nginx,mysql 等)位于单独的存储库中,并且整个高状态(状态模块, top 文件)存在于 git 中。
主配置:
fileserver_backend:
- gitfs
gitfs_remotes:
- git@github.com:MyOrg/salt-configs.git:
- git@github.com:MyOrg/server-config-files.git:
- mountpoint: config-files
解决方案
您是否考虑过将配置文件存储在支柱中?
例如:
HostFiles:
LinuxBasic: |
192.168.1.1 server1
192.168.1.2 server2
然后在您的状态文件中,当您要渲染主机文件时:
LinuxBasicHostFile:
file.managed:
- name: /etc/hosts
- contents_pillar: {{ HostFiles:LinuxBasic }}
如果该文件敏感,您也可以使用 Salt Master 服务器上的密钥对该文件进行 GPG:
$ cat nginx.hostfile | sudo gpg --armor --batch --trust-model always --encrypt --homedir <salthomdir> -r <keyname>
将其输出粘贴到您的支柱中:
HostFiles:
LinuxBasic: |
-----BEGIN PGP MESSAGE-----
Xks383...a bunch of encrypted text...BjAs0
-----END PGP MESSAGE-----
并通知您的 salt master HostFiles 在您的 master.conf 中包含 GPG 加密内容,或者更好的是,在 /etc/salt/master.d/decrypt.conf 的本地 conf 文件中:
decrypt_pillar:
- 'HostFiles': gpg
推荐阅读
- python - 防止 Python 记录器打印到控制台
- c# - 何时在 C# 的接口方法中使用任务?
- c# - 在 C# 中嵌入 SQLite.Interop.dll
- xcode - 如何在我的 InfoPlist.strings 文件中使用来自 Info.plist 的变量?
- python - 条形图和彩色分类变量
- yarnpkg - Yarn:配置锁定文件的名称
- vba - 每两小时创建一次 Outlook 提醒
- rest - 仅在 UmbracoApi 中的一台计算机中获取请求
- python - 随机化列表中的字符串,对字符串开头的python有约束
- python - 对“str”对象的怀疑不能解释为整数