举行多个软件包利用你

0

的问题

我试图保持多个软件包利用你-剧本,但它不和我一起工作。

使用以下代码它拥有第一揽子然后联合国-拿着它然后举行第二包

这里是我的代码

- name: Prevent packages from being upgraded
  dpkg_selections:
    name: "{{ item }}"
    selection: hold
  with_items:
    - postgresql
    - docker

这里是输出服务器侧同时执行的代码 enter image description here 第一线之前执行 第二条线是输出当首先包装是保持 第三行,在第二封举行的,它是。

我不明白为什么该行为就是这样? 和我如何可以举行多个程序包的时间使用你?

注:我已经遵循了指令,从Anible医生 https://docs.ansible.com/ansible/latest/collections/ansible/builtin/dpkg_selections_module.html 在此先感谢

ansible linux
2021-11-23 19:10:07
1

最好的答案

1

已经为性能和资源的原因,提供的软件包作为名单可能会更好。

- name: Prevent packages from being upgraded
  dpkg_selections:
    name: ['postgresql', 'docker']
    selection: hold

然而,你的测试报告

dpkg: error: unexpected data after package and selection

因此,它可能是,该模块可以不处理名单,所以我已经看到 来源 dpkg_selections.py. 这似乎是一个以某种方式简单的包装

module.run_command([dpkg, '--set-selections'], data="%s %s" % (name, selection), check_rc=True)

这只是提供信息的一个模块。 我还假设的模块应工作 with_items但它似乎是没有的情况下,由于你的问题。

根据人页,命令 dpkg 本身似乎能够处理的包装的清单,但提供作为角色分离的价值的文件

dpkg --set-selections < /tmp/pkg_list

与delimiter 在格式

postgresql hold
docker hold

一个简单的解决办法可能有助于你的情况。

- name: Prevent packages from being upgraded
  shell:
    cmd: |
      dpkg --set-selections << EOF
      postgresql hold
      docker hold
      EOF
    warn: false
    register: result

你可能需要实现的一些错误和状态的处理通过自己,即

changed_when: result.rc ...
failed_when: result.rc ...

谢谢来

2021-11-24 09:45:32

没有语法错误`"msg":"方法:错误:意想不到的后的数据包装和选择在线1","遥控":2,"stderr":"方法:错误:意想不到的后的数据包装和选择在line1\n"、"stderr_lines":["方法:错误:意想不到的后的数据包装和选择在线1"],"stdout":"","stdout_lines":[]`
Sara

@萨拉,感谢提供测试用的结果,我已经更新了回答。
U880D

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................