Ansible Faire Tâche Si Apt Paquet Est Manquant

Je suis à la recherche de faire une série de tâches si un paquet apt est manquant.

par exemple:

si graphite de carbone n'est PAS installé:

- apt: name=debconf-utils state=present
- shell: echo 'graphite-carbon/postrm_remove_databases boolean false' | debconf-set-selections
- apt: name=debconf-utils state=absent

un autre exemple:

si statsd n'est PAS installé:

- file: path=/tmp/build state=directory
- shell: cd /tmp/build ; git clone https://github.com/etsy/statsd.git ; cd statsd ; dpkg-buildpackage 
- shell: dpkg -i /tmp/build/statsd*.deb

Comment je commence à craquer ce?

Je pense peut-être que je peux faire un -shell: dpkg -l|grep <package name> et capturer le code de retour d'une certaine manière.

  • Vous ne devez pas utiliser shell module tellement. Votre tablettes playbook ne sont pas idempotent. Au lieu de courir debconf de commande, vous devez utiliser son module approprié, comme le montre ici docs.ansible.com/debconf_module.html
  • Je vous remercie. Très utile info.
  • Simplement de commutation à l'aide d'un module qui fait la même chose à ne pas faire de votre playbook idempotent; les deux choses ne sont pas liés. Il peut être préférable d'utiliser un module si l'on est disponible, mais ce raisonnement est faux.
InformationsquelleAutor Simply Seth | 2015-02-26