我只是 SaltStack 的初学者。我可以看到有一个 pkgrepo 模块可用于设置包 repo,以便从中安装包。
https://docs.saltstack.com/en/latest/ref/states/all/salt.states.pkgrepo.html
给出的例子是:
base:
pkgrepo.managed:
- humanname: Google Chrome
- name: deb http://dl.google.com/linux/chrome/deb/ stable main
- dist: stable
- file: /etc/apt/sources.list.d/chrome-browser.list
- require_in:
- pkg: google-chrome-stable
- gpgcheck: 1
- key_url: https://dl-ssl.google.com/linux/linux_signing_key.pub
我不明白的是我把上面的代码放在哪里?我在/srv/salt/top.sls 和其他状态的 .sls 文件中尝试过,但那是不对的。它是怎么做到的?
最佳答案
您基本上想知道如何使用 SaltStack 状态。这记录在 https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html .
要测试此代码,您必须:
- 创建一个包含代码的新 sls 文件,例如
testrepo.sls
- 使用
salt
命令执行此状态。
例子:
salt 'hostname.domainname' state.sls testrepo
其中 hostname.domainname
是您希望配置的 minion
(saltstack 客户端)的名称,由 salt-key
报告。
在给定的示例中,base
是状态名称。它必须是独一无二的。所以 base
是在文档中使用的一个非常糟糕的选择,因为它可能会使您与顶级 sls 文件语法混淆,记录在这里:https://docs.saltstack.com/en/latest/ref/states/top.html
因此,以您的示例为例,为了安装 google-chrome,您需要创建如下状态文件:
google_chrome_repository:
pkgrepo.managed:
- humanname: Google Chrome
- name: deb http://dl.google.com/linux/chrome/deb/ stable main
- dist: stable
- file: /etc/apt/sources.list.d/chrome-browser.list
- gpgcheck: 1
- key_url: https://dl-ssl.google.com/linux/linux_signing_key.pub
google-chrome-stable:
pkg.installed:
- require:
- pkgrepo: google_chrome_repository
请注意,我将必需的声明从 require_in
更改为 require
,在我看来,如果您要从中安装多个包,则此处更有意义这个存储库。此处记录了必要条件:https://docs.saltstack.com/en/latest/ref/states/requisites.html
关于debian - 您如何使用 saltstack 添加包 repo 和 apt key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46224090/