You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新Ansible与Packer后AWS AMI构建包安装失败问题

问题分析与解决方案

可能原因

  • APT源初始化竞态:Ubuntu 20.04的AWS镜像会通过cloud-init在后台完成APT源配置、缓存更新等初始化操作。更新Packer并转为HCL格式后,可能遗漏了原有的实例就绪等待逻辑,导致Ansible在cloud-init未完成时就执行安装任务,此时APT源列表不完整,无法找到build-essential、supervisor等包。添加输出操作相当于人为增加延迟,给cloud-init足够时间完成初始化,因此能临时推进流程。
  • Ansible apt模块缓存逻辑变化:Ansible Core 2.13.x的apt模块对缓存的处理与旧版本存在差异,未强制刷新缓存就尝试安装,导致使用过期缓存找不到目标包。
  • Packer HCL配置缺失等待机制:从JSON转HCL时,可能丢失了原配置中用于等待实例完全就绪的参数(如pause_before_connecting),使得Ansible过早连接实例执行任务。

解决方案

1. 等待cloud-init完全结束

在所有APT相关任务前添加等待步骤,确保系统初始化完毕:

- name: Wait for cloud-init to finish initialization
  shell: |
    until [ -f /var/lib/cloud/instance/boot-finished ]; do
      sleep 10
    done
  args:
    warn: false

2. 强制刷新APT缓存并添加重试机制

修改安装任务流程,先强制更新APT缓存,并给操作添加重试逻辑,应对网络或初始化延迟:

- name: Update APT package cache
  apt:
    update_cache: yes
    cache_valid_time: 3600
  retries: 5
  delay: 10
  register: apt_update_result
  until: apt_update_result is succeeded

- name: Install common system dependencies
  apt:
    name:
      - htop
      - nano
      - wget
      - perl
      - unzip
      - tcpdump
      - build-essential
      - python3-distutils
      - libwww-perl
      - supervisor
      - mysql-client
    state: present
  retries: 3
  delay: 5

3. 调整Packer配置增加连接前等待

在Packer的amazon-ebs builder中添加连接前的等待时间,给实例足够时间完成初始化:

source "amazon-ebs" "autogenerated_1" {
  # 现有配置
  filters = {
    name                = "ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*"
    root-device-type    = "ebs"
    virtualization-type = "hvm"
  }
  # 添加连接前等待配置
  pause_before_connecting = "45s"
}

4. 确保必要仓库已启用

supervisor等包位于Ubuntu的universe仓库,需确认该仓库已启用:

- name: Enable Ubuntu universe repository
  apt_repository:
    repo: "deb http://archive.ubuntu.com/ubuntu/ focal universe"
    state: present
    update_cache: yes

验证步骤

  1. 按顺序执行等待cloud-init、启用仓库、更新缓存、安装包的任务。
  2. 若仍出现错误,执行cat /etc/apt/sources.list检查源配置是否正常,确认包含Ubuntu官方源。

内容的提问来源于stack exchange,提问作者user24463998

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 19:28:21