我在私有debian存储库中有一堆软件包。在salt文档(http://docs.saltstack.com/en/latest/ref/states/all/salt.states.pkgrepo.html)之后,在salt状态下我定义了一个像这样的pkgerepo条目:
my-private-repo:
pkgrepo.managed:
- hmanname: My Deb
- name: deb <url>....
- dist: my-repo
- require_in:
- pkg: pkg1
- pkg: pkg2
- pkg: ...
并在每个pkg定义中添加了refresh:True节:
pkg1:
pkg:
- latest
- fromrepo: my-repo
- refresh: True
现在,它的工作方式是我得到了一个&#34; apt-get update&#34;在安装(升级)每个软件包之前,但是有很多软件包(大约20个),我会得到每个软件包的更新。在回购状态测试后,有没有办法让apt更新一次?
答案 0 :(得分:2)
Helices和Antstud的答案让我朝着正确的方向前进。无论如何,最后我发现了一些可能对其他人有帮助的有趣事情:
SaltStack doc中的内容似乎不适用(最后版本为2014.7.1)
require_in:
将此设置为pkg.installed或pkg.latest的列表,以在尝试安装这些软件包之前触发apt-get update的运行。在pkg中设置require将不适用于此。
我刚刚添加了
- require:
- pkgrepo: my_repo
到我的pkg定义并且它正在工作(使得包括更少的一团糟)。
答案 1 :(得分:1)
我相信您可以使用pkgs:
安装多个具有单一状态的软件包。它适用于我,即使使用自定义存储库:
install packages:
pkg:
- latest
- fromrepo: my-repo
- refresh: True
- pkgs:
- pkg1
- pkg2
...
答案 2 :(得分:1)
你可以尝试在每个小兵的支柱中定义pkg列表,然后在状态中获取列表。
install packages:
pkg:
- latest
- fromrepo: my-repo
- refresh: True
- pkgs:
{% for pkg in pillar.get('packages', {}).items() %}
{{pkg}}
{% endfor %}