没有包匹配';mesos';在Ansible上提供
我正在配置mesos marathon群集。 我的下一个任务是安装java和mesos没有包匹配';mesos';在Ansible上提供,ansible,ansible-playbook,mesos,mesosphere,ansible-2.x,Ansible,Ansible Playbook,Mesos,Mesosphere,Ansible 2.x,我正在配置mesos marathon群集。 我的下一个任务是安装java和mesos --- - name: importar key Mesosphere shell: gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E56151BF - name: ppa java8 apt_repository: repo='ppa:webupd8team/java' state=present - name: selecc
---
- name: importar key Mesosphere
shell: gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E56151BF
- name: ppa java8
apt_repository: repo='ppa:webupd8team/java' state=present
- name: seleccionar licencia Oracle
shell: echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections
- name: actualizar
apt: update_cache=yes
- name: instalar java8
apt: name=oracle-java8-installer state=latest update-cache=yes force=yes
- name: actualizar sources list
shell: DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]') && CODENAME=$(lsb_release -cs) && echo "deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main" | sudo tee /etc/apt/sources.list.d/mesosphere.list
- name: actualizar paquetes
apt: update_cache=yes cache_valid_time=3600
- name: instalar mesos
apt: name=mesos state=present install_recommends=yes force=yes
- name: instalar mesosphere
apt: name=mesosphere state=present install_recommends=yes force=yes
我的问题是,当我执行playbook时,它会给我下一个错误:
TASK [common : actualizar sources list] ****************************************
changed: [172.16.8.191]
TASK [common : actualizar paquetes] ********************************************
ok: [172.16.8.191]
TASK [common : instalar mesos] *************************************************
fatal: [172.16.8.191]: FAILED! => {"changed": false, "failed": true, "msg": "No package matching 'mesos' is available"}
PLAY RECAP *********************************************************************
172.16.8.191 : ok=8 changed=5 unreachable=0 failed=1
但是,如果我第二次执行ansible,它会完美工作,您可以看到第二次执行:
TASK [common : actualizar paquetes] ********************************************
ok: [172.16.8.191]
TASK [common : instalar mesos] *************************************************
changed: [172.16.8.191]
TASK [common : instalar mesosphere] ********************************************
changed: [172.16.8.191]
有什么问题吗
谢谢
@ydaetskcoR提供的解决方案
更改任务“instalar mesos”:
- name: instalar mesos
apt: name=mesos state=present install_recommends=yes update_cache=yes force=yes
您遇到的问题是,如果上一次更新发生在一个多小时之前,则
actualzar paquetes
任务仅执行apt get update
来刷新您的回购列表
考虑到您在上一个任务中只添加了Mesos回购协议,您将无法找到该包。重新运行playbook会在没有缓存有效时间设置的任务之前触发实现任务,因此将强制apt get update
,这将允许您使用上次运行playbook时添加的Mesos repo
要修复它,您只需从Realizar paquetes
任务中删除cache\u valid\u time
如评论中所述,您还可以将update\u cache
仅apt
任务移动到实际安装软件包的主apt
任务中,Ansible将在apt get install
之前运行apt get update如果将update\u cache=yes
添加到安装mesos的任务中会发生什么?真的谢谢@ydaetskcoR现在它工作得很好,我能知道为什么我必须把update_缓存放在与install mesos相同的任务中吗?请你用你的评论来回答这个问题。谢谢