98 votes

Comment exécuter apt update et upgrade via le shell Ansible

J'essaie d'utiliser Ansible pour exécuter les deux commandes suivantes:

sudo apt-get update && sudo apt-get upgrade -y

Je sais avec ansible que vous pouvez utiliser:

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

Lancer la commande suivante le ferait-il? Ou dois-je utiliser une sorte de commande raw

ansible all -m shell -u user -K -a "sudo apt-get update && sudo apt-get upgrade -y"

203voto

Tom Manterfield Points 2840

Je ne recommande pas l'utilisation de shell pour cela, comme Ansible a l'apt module conçu pour ce but. J'ai détaillé à l'aide de apt-dessous.

Dans un playbook, vous pouvez mettre à jour et de mise à niveau de la sorte:

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

L' cache_valid_time de la valeur peut être omise. Son but de la docs:

Mise à jour de l'apt cache si son plus ancien que le cache_valid_time. Cette l'option est définie en secondes.

Il est donc bon de comprendre, si vous ne voulez pas mettre à jour le cache quand il a été récemment mis à jour.

Pour ce faire ad-hoc de commande, vous pouvez exécuter:

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

ad-hoc, les commandes sont décrites en détail ici

Notez que je suis en utilisant --become et become: true. C'est un exemple typique d'une augmentation de privilège par Ansible. Vous utilisez -u user et -K (demander une augmentation de privilèges mot de passe). Utilisez celui qui fonctionne pour vous, c'est juste pour vous montrer la forme la plus commune.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X