Î: Este o formă proastă să creezi un rol Ansible doar pentru stabilirea faptelor?
A: Nu. Nu este. Tu spui tu „vreau reutilizarea codului”. Puneți sarcinile într-un fișier, de ex. tasks/get_latest_ami_id.yml, și creați un rol, de ex. roles/my_lib
shell> cat roles/my_lib/tasks/get_latest_ami_id.yml
- nume: Căutați instanțe AMI disponibile
  amazon.aws.ec2_ami_info:
    filtre:...
  înregistrare: _ami_info
    
- nume: sortați după data creării pentru a primi cele mai recente
  ansible.builtin.set_fact:
    _amis: „{{ _ami_info.images | sort(atribut="data_creării", inversă=Adevărat) }}'
    
- nume: setați datele mele pentru cel mai recent AMI
  ansible.builtin.set_fact:
    latest_ami_id: „{{ _amis[0].image_id }}
    ...
Apoi folosiți oricare include_role sau import_role și rulați sarcinile din manualul dvs. de joc, de ex.
- import_role:
    nume: my_lib
    tasks_from: get_latest_ami_id.yml
- Vedea Reutilizarea artefactelor Ansible pentru a afla care este diferența dintre includerea și importul. 
- Puteți utiliza acest rol ca o bibliotecă de alte sarcini care pot fi reutilizate. 
- Dacă conduci acest rol, nimic nu se va întâmpla din cauza tasks/main.yml lipseste. Îl puteți crea ca un memento, de ex. 
shell> cat roles/my_lib/tasks/main.yml
- depanare:
    msg: Nu rulați acest rol. Este o bibliotecă de sarcini de sine stătătoare.