it-swarm.com.de

So führen Sie apt update und upgrade über die Ansible-Shell aus

Ich versuche, Ansible zu verwenden, um die folgenden zwei Befehle auszuführen:

Sudo apt-get update && Sudo apt-get upgrade -y

Ich weiß mit Ansible können Sie verwenden:

ansible all -m Shell -u user -K -a "uptime"

Würde das Ausführen des folgenden Befehls das tun? Oder muss ich eine Art raw Befehl verwenden

ansible all -m Shell -u user -K -a "Sudo apt-get update && Sudo apt-get upgrade -y"

39
nadermx

Ich würde die Verwendung von Shell nicht empfehlen, da Ansible das apt-Modul genau für diesen Zweck entwickelt hat. Ich habe Apt unten detailliert beschrieben.

In einem Playbook können Sie wie folgt aktualisieren und aktualisieren:

- name: Update and upgrade apt packages
  become: true
  apt:
    upgrade: yes
    update_cache: yes
    cache_valid_time: 86400 #One day

Der Wert cache_valid_time Kann weggelassen werden. Sein Zweck aus dem docs :

Aktualisieren Sie den apt-Cache, wenn er älter als die cache_valid_time ist. Diese Option wird in Sekunden festgelegt.

Wenn Sie den Cache nicht aktualisieren möchten, obwohl er erst kürzlich aktualisiert wurde, sollten Sie ihn einbeziehen.

Um dies als Ad-hoc-Befehl auszuführen, können Sie Folgendes ausführen:

$ ansible all -m apt -a "upgrade=yes update_cache=yes cache_valid_time=86400" --become

ad-hoc-Befehle werden ausführlich beschrieben hier

Beachten Sie, dass ich --become Und become: true Verwende. Dies ist ein Beispiel für eine typische Eskalation von Berechtigungen durch Ansible. Sie verwenden -u user Und -K (Fragen Sie nach dem Kennwort für die Eskalation von Berechtigungen). Verwenden Sie, was auch immer für Sie funktioniert, dies dient nur dazu, Ihnen die gebräuchlichste Form zu zeigen.

89
Tom Manterfield