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"
Je ne recommanderais pas d’utiliser Shell pour cela, car Ansible a conçu le module apt dans ce but précis. J'ai détaillé en utilisant apt ci-dessous.
Dans un playbook, vous pouvez mettre à jour et mettre à jour de la manière suivante:
- name: Update and upgrade apt packages
become: true
apt:
upgrade: yes
update_cache: yes
cache_valid_time: 86400 #One day
La valeur cache_valid_time
peut être omise. Son but de la docs :
Mettez à jour le cache d'apt si il est plus ancien que le cache_valid_time. Cette option est définie en secondes.
Il est donc bon d'inclure si vous ne voulez pas mettre à jour le cache alors qu'il vient d'être mis à jour.
Pour ce faire en tant que commande ad hoc, vous pouvez exécuter:
$ ansible all -m apt -a "upgrade=yes update_cache=yes cache_valid_time=86400" --become
les commandes ad-hoc sont décrites en détail ici
Notez que j'utilise --become
et become: true
. Ceci est un exemple typique d'élévation de privilèges via Ansible. Vous utilisez -u user
et -K
(demandez le mot de passe d'élévation des privilèges). Utilisez ce qui vous convient le mieux, c'est simplement pour vous montrer le formulaire le plus courant.