使用状态升级所有包

时间:2018-06-25 12:44:45

标签: salt-stack

我如何编写Salt状态来升级centos和ubuntu系统上(实验室)安装的所有软件包?

我有一个upgrades.sls,其内容如下:

upgrades:
  pkg.upgrade:
    - name: '*'

但是它返回一个

  

在SLS'dfars.patching'中找不到状态'pkg.upgrade'原因:   “ pkg.upgrade”不可用。

我是否必须为centos指定它,然后使用yum.pkg,让Ubuntu使用apt

2 个答案:

答案 0 :(得分:1)

您可以为此使用pkg.uptodate

update_pkg:
  pkg.uptodate:
    - refresh : True

答案 1 :(得分:0)

由于pkg.upgrade是一个执行模块,您正在收到错误,您正在尝试从状态文件中运行它。执行模块是salt命令调用的功能,不能直接从states执行。

但是,您可以使用module.run来允许通过状态进行execution module调用,

upgrades:
  module.run:
    - pkg.upgrade
    ....

另一种方法是利用states.pkg中的某些内容,例如states.pkg.uptodate

salt.states.pkg.uptodate(name, refresh=False, pkgs=None, **kwargs)
  

确认系统是最新的。

     

名称:该名称没有功能价值,仅用作跟踪   参考

     

刷新:刷新软件包数据库,然后检查是否有新的   升级

     

pkgs:要升级的软件包列表