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

在AWS EC2实例用Ansible安装MySQL时遇apt缓存更新失败

在AWS EC2实例上通过Ansible安装MySQL时遇到APT缓存更新失败问题

错误信息

failed: [db01] (item=mysql-server) => {"ansible_loop_var": "item", "changed": false, "item": "mysql-server", "msg": "Failed to update apt cache: "}
failed: [db01] (item=mysql-client) => {"ansible_loop_var": "item", "changed": false, "item": "mysql-client", "msg": "Failed to update apt cache: "}
failed: [db01] (item=python-mysqldb) => {"ansible_loop_var": "item", "changed": false, "item": "python-mysqldb", "msg": "Failed to update apt cache: "}
failed: [db01] (item=python3-mysqldb) => {"ansible_loop_var": "item", "changed": false, "item": "python3-mysqldb", "msg": "Failed to update apt cache: "}
failed: [db01] (item=libmysqlclient-dev) => {"ansible_loop_var": "item", "changed": false, "item": "libmysqlclient-dev", "msg": "Failed to update apt cache: "}

我的Ansible Playbook代码

---
- name: 配置MySQL(含账号、数据库及远程登录权限)
  hosts: group_vars/dbsrvgrp
  gather_facts: no
  tasks:
    - name: 安装MySQL服务及依赖包
      package:
        name: "{{item}}"
        state: present
        update_cache: yes
        cache_valid_time: 86400
      loop:
        - mysql-server
        - mysql-client
        - python-mysqldb
        - python3-mysqldb
        - libmysqlclient-dev
      ignore_errors: yes
      tags:
        - package

排查与解决方案

1. 手动验证APT可用性

直接登录db01实例,执行以下命令获取缓存更新失败的具体原因:

sudo apt update

此命令会输出详细错误(如网络不通、源地址失效、权限不足等),是最直接的排查手段。

2. 检查EC2实例网络配置

  • 确认实例安全组出站规则允许访问公网80/443端口(APT源依赖HTTP/HTTPS获取包信息)
  • 测试公网连通性:执行ping google.com或curl http://archive.ubuntu.com验证网络是否正常

3. 修正Playbook配置问题

  • hosts字段错误:group_vars/dbsrvgrp是变量存储目录,不是Inventory中的主机组名称,需改为实际定义的组名(如dbsrvgrp)
  • 移除ignore_errors: yes:该配置会掩盖真实错误,不利于排查,建议暂时删除
  • 开启gather_facts:设置gather_facts: yes,让Ansible自动识别目标系统的包管理器和系统信息,避免适配问题

4. 处理APT源失效问题

若实例使用的Ubuntu版本过旧(如18.04及更早),官方源已迁移至旧版本归档地址,需修改APT源配置:

  1. 备份原有源文件:
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
  2. 替换源地址为旧版本归档:
    sudo sed -i 's/archive.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
    
  3. 再次执行apt update验证缓存更新

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:57:32