如何使用 saltstack 添加包 repo 和密钥到 apt ?

use*_*708 2 debian apt salt-stack

我只是 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
Run Code Online (Sandbox Code Playgroud)

我不明白的是我把上面的代码放在哪里?我在 /srv/salt/top.sls 和其他状态的 .sls 文件中尝试过,但这是不对的。它是如何完成的?

Chr*_*uet 9

您基本上想知道如何使用 SaltStack 状态。这记录在https://docs.saltstack.com/en/latest/topics/tutorials/starting_states.html

要测试此代码,您必须:

  • 例如,创建一个包含代码的新 sls 文件 testrepo.sls
  • 使用salt命令执行此状态。

例子:

salt 'hostname.domainname' state.sls testrepo
Run Code Online (Sandbox Code Playgroud)

在哪里hostname.domainnameminion您希望配置的(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
Run Code Online (Sandbox Code Playgroud)

请注意,在我看来,如果您要从此存储库安装多个软件包,我将必需的声明从 a 更改require_in为 arequire更有意义。此处记录了必备条件:https : //docs.saltstack.com/en/latest/ref/states/requisites.html