Comment groupe ensemble de tâches dans un bloc en ansible playbook?

Je suis entrain de créer un ansible playbook pour la configuration de nos systèmes de construction. Une partie de ce que j'ai commencé d'écrire des rôles pour l'installation de java (open JDK et Oracle JDK) pour CentOS. Open JDK est disponible via YUM gestionnaire de paquets, donc pas de problème pour idempotence là. Pour oracle Java, j'ai besoin de télécharger, d'installer, de lien symbolique et le nettoyage. Afin de créer idempotence je suis à la recherche de plus propre manière de faire, par exemple voici mon code. Fondamentalement, je suis vérification pour un lien symbolique afin de déterminer si java est installé ou non et l'enregistrement d'une variable pour l'utiliser dans le LORSQUE les modules plus tard. Ce que je ne suis pas du goût est à l'aide de Quand déclaration pour l'ensemble des quatre étapes de l'installation de jdk. comment puis-je groupe tous les quatre étapes (télécharger, installer, lien symbolique et de nettoyage) dans un bloc et de les exécuter sur un quand déclaration?

- name: Check if Java 8 is instaled
  stat: path=~/java/oraclejdk8
  register: oraclejdk8_sym

- name: Download Java 8
  command: "wget --no-cookies -O {{ jdk_download_path }}/{{ oraclejdk8.jdk_rpm_file }} --no-check-certificate --header 'Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie' {{ oraclejdk8.jdk_rpm_url }}"
  when: oraclejdk8_sym.stat.islnk is not defined

- name: Install Java 8
  yum: name={{ java_archive }} state=present
  when: oraclejdk8_sym.stat.islnk is not defined

- name: Symlink to ~/java/oraclejdk8
  file: path=~/java/state=directory mode=0755
  command: "ln -s /usr/java/jdk{{ oraclejdk8.jdk_version  }} ~/java/oraclejdk8"
  when: oraclejdk8_sym.stat.islnk is not defined

- name: Clean up
  file: state=absent path={{ jdk_download_path}}/{{ oraclejdk8.jdk_rpm_file }}
  when: oraclejdk8_sym.stat.islnk is not defined
InformationsquelleAutor Krish | 2015-09-26