2017-05-02 4 views
0

Ich muss das Paket von einem anderen Ziel-Release neu installieren. Problem: Wenn das Paket bereits installiert ist, wird keine Aktion ausgeführt. Mein ansible Textbuch Fragment ist:Erneutes Installieren des Deb-Pakets von einem anderen Release

- name: Add jessie-backports repo 
    apt_repository: 
    repo: 'deb http://httpredir.debian.org/debian jessie-backports main' 
    state: present 

- name: install libssl from jessie-backports 
    apt: 
    name: libssl1.0.0 
    default_release: jessie-backports 

und ansible Antwort lautet:

ptmp3 | SUCCESS => { 
    "cache_update_time": 1493744770, 
    "cache_updated": true, 
    "changed": false, 
    "invocation": { 
     .... 
    } 
} 

ich alte Version vor der Installation neuer entfernen kann, sondern ganze Reihe von Paketen, hängt von libssl (ssh zum Beispiel).

Btw Befehl apt-get install libssl1.0.0 -t jessie-backports bei Remote-Host-Werken und libssl aktualisiert

+0

Warum es keinen Staat ist = in Sie apt Aufgabe? – papey

+0

state = present ist der Standardwert – kakabomba

+0

Haben Sie versucht, 'force: true' mit dem apt-Modul zu verwenden? –

Antwort

0

Lösung ist genaue Version des Pakets enthält in apt Aufgabe installiert werden. Die genaue Version kann unter apt-cache (apt-cache policy libssl1.0.0) abgerufen werden.

Geeignete Batzen Textbuch wäre:

- name: Add jessie-backports repo 
    apt_repository: 
    update_cache: yes 
    repo: 'deb http://httpredir.debian.org/debian jessie-backports main' 
    state: present 

- name: get libssl1.0.0 jessie-backports version 
    shell: apt-cache policy libssl1.0.0 | grep jessie-backports -B1 | head -n1 | sed -e 's/^\s*\**\s*\(\S*\).*/\1/' 
    register: libsslinstalled 

- name: install libssl from jessie-backports 
    apt: 
    name: "libssl1.0.0={{ libsslinstalled.stdout_lines[0] }}" 
Verwandte Themen