Wenn Ihre Datei statisch ist (was bedeutet, dass Sie die TEXT_NEED_TO_ADD während der Bereitstellung nur einmal einfügen möchten), sollten Sie eine jinja2-Vorlagendatei erstellen und in Ihrer Rolle verwenden .
So sollte Ihre Dateistruktur sein:
your_role/
templates/
my_file_template.j2
tasks/
main.yml
und Ihre Dateien sollte wie folgt aussehen:
main.yml
- name: copy file and fill it
template: src=my_file_template.j2 dest="/home/user/my_file"
my_file_template.j2
some_line
text text mark {{TEXT_NEED_TO_ADD}} text text
some_line
Dies way ansible fügt den Inhalt der Variablen in eine Datei (an einer Stelle von {{TEXT_NEED_TO_ADD}}) ein, bevor er in den Speicherort kopiert wird, der von dest angegeben wurde. Sie können so viele Variablen in der jinja Vorlage verwenden, wie Sie möchten. Ansible unterstützt auch viele Filter und andere nützliche Werkzeuge (wie zB Loops). Aber ich denke, mit sed
wäre auch in Ordnung. Hängt davon ab, was du erreichen willst. Sie mehr über Template-Modul here lesen können und Sie können mehr über Vorlagen here
Diese Frage etwas verbessert werden muss, ist es nicht wirklich eine Frage gelesen, Sie haben uns nicht gesagt, welche Sprache Sie dies in erreichen möchten, ist es benötigt viel mehr Informationen, bevor jemand Ihnen eine konstruktive Antwort geben kann. –
Erstellen Sie ein Ansible-Modul mit Python. Dort können Sie Ihre eigene Logik schreiben, um die Datei zu manipulieren und dann dieses Modul von Ihrem sprechbaren Playbook aus aufzurufen. Lassen Sie es mich wissen, wenn Sie weitere Hilfe benötigen. – Shasha99
Verwenden Sie Ansible lineinfile-Modul – helloV