salt-stack - 使用 Saltify (salt-cloud) 部署 salt-minion 时,如何在我的 minions 上“撒”自定义颗粒?
问题描述
我已经saltify
开始研究一个新的奴才了。我也可以为仆从指定配置文件。但是,在此过程中,我不知道如何将自定义颗粒分配给我的仆从。
这是我的设置。
在/etc/salt/cloud.profiles.d/saltify.conf
我有:
salt-this-webserver:
ssh_host: 10.66.77.99
ssh_username: opsuser
password: **********
provider: web-saltify-config
salt-this-fileserver:
ssh_host: 10.66.77.99
ssh_username: opsuser
password: **********
provider: file-saltify-config
在/etc/salt/cloud/cloud.providers
我有:
web-saltify-config:
minion:
master: 10.66.77.44
driver: saltify
grains:
layers:
- infrastructure
roles:
- web-server
file-saltify-config:
minion:
master: 10.66.77.55
driver: saltify
grains:
layers:
- infrastructure
roles:
- file-server
当我从我的 Salt Master 运行命令时:
salt-cloud -p salt-this-fileserver slave-salttesting-01.eng.example.com
我/etc/salt/minion
的仆从上的文件如下所示:
grains:
salt-cloud:
driver: saltify
profile: salt-this-fileserver
provider: file-saltify-config:saltify
hash_type: sha256
id: slave-salttesting-01.eng.example.com
log_level: info
master: 10.66.77.99
我真的很希望它也有:
grains:
layers:
- infrastructure
roles:
- file-server
我希望这发生在 saltify 阶段而不是后续步骤,因为它非常适合我在这一步要完成的工作。
有没有办法在“盐化”期间在我的爪牙上撒一些谷物?
编辑:sync_after_install 配置参数可能与它有关,但我不确定将自定义模块、颗粒、状态等放在哪里。
解决方案
如果您以与我构建文件的方式(上图)类似的方式构建文件,我cloud.providers
在/etc/salt/grains
这似乎可以正常工作。cloud.providers
我启用了调试(在 中/etc/salt/cloud
),在屏幕上的调试输出中,我可以看到一段代码,表明在某些时候conf
,git root 目录中名为“grains”的文件也可能被传输过来:
# Copy the grains file if found
if [ -f "$_TEMP_CONFIG_DIR/grains" ]; then
echodebug "Moving provided grains file from $_TEMP_CONFIG_DIR/grains to $_SALT_ETC_DIR/grains"
但是,我不确定,因为我没有深入研究它,因为我的谷物正在像我希望的那样被撒上。
推荐阅读
- mysql - LEFT JOIN 查询中的 WHERE 子句
- ruby-on-rails - Rails(Puma 服务器)Phantomjs 不在生产环境中运行
- shell - 为什么在 shell 脚本中找不到 lsof 命令,但它在终端中运行良好
- jquery - 从 Div Jquery 中删除项目
- python - 从单个 json 对象加载数据帧
- java - 当一切都应该干净时,为什么它会向我发送未关闭的连接错误?
- html - 无法让固定操作按钮在 Materialise CSS 中工作
- bash - 如何仅从文本文件中读取最后一行
- xaml - 水平旋转设备时界面出现问题
- python - Python,Stripe,从 Source 获取 Card id