debian - 您如何使用 saltstack 添加包 repo 和 apt key ?

标签 debian salt-stack apt

我只是 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/

相关文章:

makefile - 试图覆盖 `/var/backups/infodir.bak' ,它也在包 x 中

mysql-server 每天 7 点删除

linux - 全局文件到 LXC 容器?

render - 如何在不应用 SaltStack 栈的情况下渲染和转储文件 sls

C++ Boost线程库拉入整个开发环境

c - Sphinxbase 制作/安装失败

python - 如何添加到 salt 状态? (初学者使用 virtualenv 做 Python 项目)

docker - SaltStack Docker-py 端口将 tcp 和 udp 绑定(bind)到同一端口的问题

homebrew - homebrew、macports 或其他软件包安装工具有什么区别/用法?

android - 找不到方法 apt()