Ansible - 在没有提示的情况下进行发布升级

Ste*_*sic 4 ubuntu upgrade ansible

在 Ubuntu 上,我想通过 Ansible 使用命令“do-release-upgrade”升级操作系统,但它有无法避免的提示。

有没有办法使用 Ansible 来回答运行 Ansible 脚本的用户的提示?

我们有几台服务器无法通过 SSH 访问,但通过 Ansible 可以。

服务器运行在 Ubuntu 16.04 上,所有服务器都需要升级到 Ubuntu 20.04。

这个过程中有很多不可避免的提示。

Kev*_*n C 7

有没有一种方法可以使用 ansible playbook 来回答运行 ansible 脚本的用户的 shell 脚本提示?

您可以使用expect模块。例子:

- name: Upgrade Ubuntu w do release upgrade
  expect:
    command: do-release-upgrade
    responses:
      'First Question in the prompt' : 'y'
      'Second Question in the prompt' : 'y'
Run Code Online (Sandbox Code Playgroud)

但是,您希望在没有提示的情况下执行 do-release-upgrade。

- shell: do-release-upgrade -f DistUpgradeViewNonInteractive
Run Code Online (Sandbox Code Playgroud)

请注意:

  • 确保在升级之前有备份和/或快照
  • 确保所有软件包都是最新版本
  • 确保已安装 update-manager-core
  • 确保在 do-release-upgrade 后重新启动机器

另外,请阅读我的第一条评论。由于您没有与计算机的 SSH 连接,因此如果出现问题,很难进行调试并查看发生了什么情况。

请注意,Ubuntu 默认情况下会在 处留下日志/var/log/dist-upgrade,使用这些日志来检查/验证升级。他们提供了很多帮助!