ansible - Ansible 上没有可用的与 'mesos' 匹配的软件包

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

最佳答案

您遇到的问题是,如果上次更新是在一个多小时前,则 actualizar paquetes 任务仅执行 apt-get update 来刷新您的存储库列表.

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

要修复此问题,您只需从 actualizar paquetes 任务中删除 cache_valid_time 即可。

正如评论中提到的,您还可以将 update_cacheapt 任务移至实际安装软件包和 Ansible 的主 apt 任务中将在 apt-get install 之前运行 apt-get update

关于ansible - Ansible 上没有可用的与 'mesos' 匹配的软件包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35227363/

相关文章:

Ansible:当前剧本角色中主机上的 with_items

Ansible Python 解释器问题

dns - 如何在Marathon Docker参数中使用变量

git - 将本地 git 存储库与 Ansible Tower 结合使用

ansible - 用ansible下载一个大文件

scala - 从Spark作业访问HDFS HA(UnknownHostException错误)

mesos - 如何根据 apache marathon 的正常运行时间缩减实例?

ruby-on-rails - Marathon 上的临时任务

amazon-web-services - DCOS Cloudformation 中 Mesos 代理的自定义代理角色

Mesos:mesos-slave 提供额外的端口