因此,我正在尝试使用 ansible 设置 Ubuntu 主机,我的要求之一是使用 java8
在研究了大量关于 Oracle PPA 等的各种弃用帖子后,我决定安装 openjdk-8-jdk
以下是我的场景 - 我从 AWS 启动了一个全新的 Ubuntu 镜像,我做的第一件事
apt-get update
apt-get install openjdk-8-jdk
完美 - 成功了,现在把它放入我的 ansible 剧本中,看起来像这样:
- name: Update all Ubuntu packages
apt:
upgrade: "dist"
when: ansible_distribution == 'Ubuntu'
- name: Install required Ubuntu packages
apt:
name: "{{ packages }}"
state: present
vars:
packages:
- openjdk-8-jdk
但是当 ansible 运行时,会出现以下错误:
amazon-ebs: TASK [system : Install required Ubuntu packages] *******************************
amazon-ebs: fatal: [default]: FAILED! => {"changed": false, "msg": "No package matching 'openjdk-8-jdk' is available"}
amazon-ebs: to retry, use: --limit @/Users/cparker/Git/tungsten-products/ami/replicator/ansible/playbook-ubuntu.retry
另外,是的,我启动测试的新映像与 ansible 启动的 AMI 映像 ID/Build 完全相同
我迷路了 :(
我搜索了不少结果,但它们都引用了现在已经过时的使用 Oracle 构建等的方法,但我找不到任何针对此问题的具体内容
图像是 Ubuntu 18.04,具体来说是 ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-20190814
Ansible 是 2.7.10
答案1
默认情况下,云镜像中没有本地缓存的包列表。
放
update_cache: yes
在安装软件包之前让 apt 更新其缓存。
答案2
您应该检查缓存和缓存的有效时间,以获取更多参考https://docs.ansible.com/ansible/latest/modules/apt_module.html
apt:
update_cache: yes
cache_valid_time: 3600