没有包装匹配' mesos'可在Ansible上找到

时间:2016-02-05 15:09:14

标签: 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: 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

我的问题是,当我执行剧本时,它会给我下一个错误:

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 error

但是,如果我第二次执行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]

Ansible works

可能是什么问题?

感谢。

解决方案来自@ydaetskcoR

更改任务' instalar mesos':

- name: instalar mesos
  apt: name=mesos state=present install_recommends=yes update_cache=yes force=yes

1 个答案:

答案 0 :(得分:3)

您遇到的问题是,actualizar paquetes任务仅在{1}}进行刷新您的回购列表(如果上次更新超过一小时)。

考虑到您刚刚在上一个任务中添加了Mesos repo,您​​将无法找到该包。重新运行该剧本会触发apt-get update任务之前没有actualizar设置的任务,因此将强制cache_valid_time,这将允许您使用添加的Mesos仓库在最后一本剧本中。

要解决此问题,您只需从apt-get update任务中删除cache_valid_time即可。

如评论中所述,您还可以将仅actualizar paquetes update_cache个任务移动到实际安装软件包的主apt任务中,Ansible将运行apt之前的任务apt-get update