Est-il possible d'éditer et de modifier un fichier xml via des playbooks ansibles? Si possible comment? J'ai plusieurs attributs à remplacer manuellement dans un fichier xml
<Products> <Product productId="MetadataServer"> {{ some_value }} <product/> <Product productId="DataQualityExceptionConsole" version="11.5.0.1"/> </Products>
Je souhaite remplacer {{some_value}}
par une valeur différente.
p >
3 Réponses :
vous pouvez utiliser le module replace
dans ansible:
<Products> <Product productId="MetadataServer">some_value<product/> <Product productId="DataQualityExceptionConsole" version="11.5.0.1"/> </Products>
Modifiez votre fichier si possible comme ci-dessous, il serait plus facile de le remplacer:
- name: Replace Module replace: dest=<file-path-name> regexp='some_value' replace='{{ some_value }}' backup=no
J'ai différentes valeurs à remplacer dans un fichier XML, dois-je donc avoir plusieurs tâches pour chacune?
@Samson Vous pouvez écrire la même ligne ci-dessus avec une expression régulière différente et une valeur différente dans le même fichier.
Créez un modèle pour ce fichier xml et créez une liste de valeurs-clés en fonction de différents scénarios. Lorsque vous exécuterez le playbook, ansible remplacera toutes les variables du modèle en utilisant la clé de variable et la valeur correspondante.
par exemple
vous voulez installer tomcat sur un environnement dev et qa. pour Dev, vous utilisez le port 8080 et pour l'environnement QA, vous utilisez le port 8081. vous pouvez créer un modèle de server.xml avec port_no comme variable. (le petit extrait peut être comme ci-dessous). vous pouvez ajouter autant de variables que vous le souhaitez.
<Service name="Catalina"> <Connector port="{{ port_no }}" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Créez un modèle pour ce fichier xml et créez une liste de variables basée sur différents scénarios.