2016-02-05 69 views
1

我正在配置mesos-marathon集羣。 我有下一個角色來安裝java和mesos。Ansible上沒有可匹配'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 
+0

如果向安裝mesos的任務添加'update_cache = yes',會發生什麼情況? – ydaetskcoR

+0

真的非常感謝@ydaetskcoR現在它完美的工作,我可以知道爲什麼我必須將update_cache放在與安裝mesos相同的任務中嗎?並請您回答與您的評論的問題。謝謝 –

回答

3

你的是,actualizar paquetes任務只完成了apt-get update刷新你的回購列表中的問題,如果最後一次更新是一個多小時前。

考慮到您剛纔在上一個任務中添加了Mesos回購,您將無法找到該包。重新運行劇本將觸發actualizar任務,在此之前沒有設置cache_valid_time,因此會強制執行apt-get update,然後您可以使用您在上次劇本運行中添加的Mesos回購。

要修復它,您可以從actualizar paquetes任務中刪除cache_valid_time

正如在評論中提到,你也可以移動update_cache只有apt任務進入主apt任務實際安裝包和Ansible將apt-get install之前運行apt-get update

相關問題