Quand j'ai vérifié si les filtres Jinja2 pouvaient gérer les expressions régulières pour les valeurs de variables acquises dynamiquement par Ansible sans utiliser replace, module de modèle, sed dans le module de commande, etc., regex_replace
a été préparé. ..
Ce qui suit utilise la variable kb_msu "Windows8.1-KB3140735-x64.msu" avec regex_replace Exemple 1) Remplacez l'extension ** et définissez-la comme une autre variable Exemple 2) Extraire uniquement le nombre du milieu ** et le définir comme une autre variable Exemple de sortie de playbook par le module de débogage
regex_raplace.yml
---
- hosts: localhost
connection: local
gather_facts: no
vars:
kb_msu: "Windows8.1-KB3140735-x64.msu"
#Exemple 1) kb_extension msu.de msu.Remplacer par xml
kb_xml: "{{ kb_msu | regex_replace('.msu','.xml') }}"
#Exemple 2) kb_msu'-KB'Quand'-'Quandの間の数字を抽出
kb_no: "{{ kb_msu | regex_replace('^.*-KB(\\d*)-.*msu$','\\1') }}"
tasks:
- debug: msg="kb_msu={{ kb_msu }} , kb_xml={{ kb_xml }} , kb_no={{ kb_no }}"
# ansible-playbook regex_raplace.yml
PLAY [localhost] ***************************************************************
TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": "kb_msu=Windows8.1-KB3140735-x64.msu, kb_xml=Windows8.1-KB3140735-x64.xml , kb_no=3140735"
}
PLAY RECAP *********************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0
Cliquez ici pour savoir comment utiliser les filtres Jinja2 sur le site officiel (http://docs.ansible.com/ansible/playbooks_filters.html). Divers autres filtres utiles (tels que ceux liés à Windows et ceux qui échappent aux expressions régulières) Est ajouté / mis à jour? Comme cela a été fait, il peut être bon de jeter un coup d'œil régulièrement.
De plus, pour le moment (04/07/2016), il n'est pas répertorié sur le site officiel,
Il semble que regex_search
et regex_findall
puissent également être utilisés pour les expressions régulières.
À partir de la version 2.2.0? N'est-ce pas? (ansible 2.2.0 (devel 394430a61e) dernière mise à jour 2016/06/28 13:25:07 (GMT +900) était utilisable)
Vous trouverez ci-dessous une partie du code pour Ansible-Webinar https://github.com/privateip/Ansible-Webinar-Mar2016/blob/master/roles/network_facts/tasks/ios.yaml