Filter plugins#
Tous les filters que vous développez doivent se trouver au sein d’une collection, cela facilitera la diffusion, que ce soit en au sein de la communauté ou pour vos projets d’entreprise.
Les modules custom que vous développez doivent se trouver dans le répertoire plugins/filter_plugins
pour être retrouvés
à l’installation de la collection en dépendances d’un projet.
Le guide officiel de développement de plugins est très fourni sur le sujet.
Initialisation#
En phase de développement, vous devez indiquer à Ansible où trouvez vos plugins filters en cours de développement.
Ajoutez ceci à votre
.envrc
export ANSIBLE_FILTER_PLUGINS="${PWD}/plugins/filter_plugins:${ANSIBLE_FILTER_PLUGINS}"
Exemple fonctionnel#
Coller ceci dans le fichier plugins/filter_plugins/rev.py
:
#!/usr/bin/python
class FilterModule(object):
''' Nested dict filter '''
def filters(self):
return {
'rev': self.rev
}
def rev(self, input):
return input[::-1]
Vous pouvez le tester en créant le fichier playbooks/rev.yml
:
---
- hosts: localhost
become: false
gather_facts: false
tasks:
- debug:
msg: "{{ item | rev }}"
loop:
- palindrome
- kayak
Et en lançant la commande :
$ ansible-playbook playbooks/rev.yml
PLAY [localhost] ************************************************************************************************************************************************************
TASK [debug] ****************************************************************************************************************************************************************
mardi 19 avril 2022 01:38:22 +0200 (0:00:00.006) 0:00:00.006 ***********
ok: [localhost] => (item=palindrome) => {}
MSG:
emordnilap
ok: [localhost] => (item=kayak) => {}
MSG:
kayak
PLAY RECAP ******************************************************************************************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Playbook run took 0 days, 0 hours, 0 minutes, 0 seconds
mardi 19 avril 2022 01:38:22 +0200 (0:00:00.021) 0:00:00.028 ***********
===============================================================================
debug ---------------------------------------------------------------------------------------------------------------------------------------------------------------- 0.02s