如何在盐碱地上部署自定义rpm ?



我正在为设置多台机器的salt-stack工作,我想问我们如何将rpm(放置在master中的自定义位置)部署到minions上?我已经知道如何使用top安装软件包了。sls文件和需要安装在minions上的包的名称,但我正在寻找的是将我的自定义rpm从master部署到minions上。

有两种方法:

选项1:

定义支柱中的rpm列表文件:

package_names:
- custom-rpm1: custom-rpm1-2.6.1-2.el7.x86_64.rpm
- custom-rpm2: custom-rpm2-release-el7-3.noarch.rpm
- custom-rpm3: custom-rpm3-latest.noarch.rpm

文件:

install-rpm:
pkg.installed:
- sources: {{ pillar['package_names'] }}

选项2:

将包含rpm的目录(以下示例中的salt://rpms相对于file_roots)复制到目标机器上,并使用rpm命令安装(使用通配符):

copy-rpms-dir:
file.recurse:
- name: /tmp/rpms
- source: salt://rpms
install-rpms:
cmd.run:
- name: rpm -ivh /tmp/rpms/*.rpm
- success_retcodes:
- 2

安装rpm命令需要额外检查返回代码,因为当RPM已经安装时,它返回非零(2)。

最新更新