Remplacer une chaîne de caractères avec la regex à l'aide de remplacer le module dans Ansible
J'ai besoin de remplacer une chaîne de caractères avec app_name: <anything>
à app_name: {{ node }}
.
Il y a quelques erreur de syntaxe tout essayé de l'exécuter à l'aide de la remplacer le module ci-dessous:
remplacer: dest=/ABC/hybris/newrelic/newrelic.yml regexp='app_name:\s ([A-Za-z0-9 ] *" remplacer='app_name: "{{ noeud }}"'
Message D'Erreur:
[ansible@dev-ci ansible]$ ansible-playbook -i hosts_acc ACC.yml --tags=newrelic
ERROR! Syntax Error while loading YAML.
The error appears to have been in '/ABC/Ansible/roles/NewRelic_Base/tasks/main.yml': line 12, column 101, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
- name: NewRelic - Replace app_name variable
replace: dest=/ABC/hybris/newrelic/newrelic.yml regexp='app_name:\s[A-Za-z0-9 ]*' replace="app_name: {{ node }}"
^ here
We could be wrong, but this one looks like it might be an issue with
missing quotes. Always quote template expression brackets when they
start a value. For instance:
with_items:
- {{ foo }}
Should be written as:
with_items:
- "{{ foo }}"
Au lieu de
replace
, vous devez utiliser template
et écrire la totalité de la chose.
OriginalL'auteur Jerald Sabu M | 2017-01-17
Vous devez vous connecter pour publier un commentaire.
Le problème dans votre exemple, le deux-points suivi d'un espace à l'intérieur de l'Ansible notation (avec le signe "égal"), il y a donc plusieurs façons de l'éviter.
Mon conseil est d'utiliser la syntaxe YAML:
Pour des idées avec Ansible notation de voir cette GitHub fil.
Exemples:
OriginalL'auteur techraf