Es klingt, als gäbe es einige Clients, denen bestimmte Hosts zugeordnet sind, und die Zeile in diesem Skript hängt vom Client ab.
In diesem Fall sollten Sie Gruppe Vars verwenden. Ich habe unten ein vereinfachtes Beispiel eingefügt.
[client1]
host1
host2
[client2]
host3
host4
Verwendung Gruppenvariablen wie folgt aus::
Datei group_vars/client1:
variable_script_line: echo "this is client 1"
Datei group_vars/client2:
variable_script_line: echo "this is client 2"
Ihre Gastgeber wie diese Datei einrichten
Erstellen Sie eine Vorlage Datei mit dem Namen yourscript.sh.j2:
#!/bin/bash
# {{ ansible_managed }}
script line 1
script line 2
# below is the line that should be dynamic
{{ variable_script_line }}
Und dann das Template Modul wie folgt verwenden:
---
- hosts: all
tasks:
- name: Deploy script to remote hosts
template:
src: /path/to/yourscript.sh.j2
dest: /path/to/location/yourscript.sh
mode: 0755
Beachten Sie, dass der Pfad Vorlage Ihre Quelle wird anders sein, wenn Sie Verwenden einer [Rolle] [1].
Schließlich, wenn das Spiel auf client1
vs client2
ausgeführt wird, wird der Inhalt der Vorlage basierend auf der Variablen anders geschrieben (siehe mehr über variable scopes).
Vielleicht versuchen Sie zuerst [die Dokumentation] (https://docs.ansible.com/) zu lesen. Es enthält Beispiele, wie Sie tun können, was Sie wollen. Ansonsten ist es "Mach es für mich" Anfrage. – techraf
Danke für Ihre Antwort. Natürlich habe ich zuerst die Dokumentation gelesen und lese sie in diesem Moment noch. Ich habe gerade nicht gefunden, was ich suche. – Tiki