首页 > 解决方案 > 使用 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 配置参数可能与它有关,但我不确定将自定义模块、颗粒、状态等放在哪里。

标签: salt-stackconfiguration-managementsalt-cloud

解决方案


如果您以与我构建文件的方式(上图)类似的方式构建文件,我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"

但是,我不确定,因为我没有深入研究它,因为我的谷物正在像我希望的那样被撒上。


推荐阅读