Wie notiere ich IPv6-Adressen in der Inventardatei?

7

Ich habe eine Maschine, auf die nur über IPv6 zugegriffen werden kann. Es ist für ssh mit rsa key eingerichtet. Jetzt möchte ich es mit ansible schaffen. Dies wird in der Inventardokumentation leider nicht behandelt .

Also habe ich folgende Permutationen ausprobiert:

  • docker_test ansible_host=fe80::88ea:e002:b409:4be0
  • docker_test ansible_host=[fe80::88ea:e002:b409:4be0]
  • docker_test ansible_host=\[fe80::88ea:e002:b409:4be0\]

Nichts davon hat geklappt.

Zum Vergleich füge ich meinen .ssh/configEintrag hinzu:

Host docker_host
    AddressFamily inet6
    HostName fe80::88ea:e002:b409:4be0
    BindAddress fe80::3e6b:335a:d2f7:3a75%enp3s0

Ich habe zwei geschlossene Fehler im Problemverfolgungssystem gefunden, die darauf hinweisen, dass das Problem zumindest teilweise gelöst wurde: 3879 , 3888

Jeder Rat zu diesem Thema wird sehr geschätzt.

tgr
quelle
Haben Sie versucht, eine Inventardatei zu verwenden? Und bitte teilen Sie uns die Fehler mit, die Sie erhalten.
Guntbert
Ja, ich habe versucht, die Inventardatei zu verwenden. Die drei veröffentlichten Permutationen stammen von dort. Die Ausnahmen sind ziemlich vage und geben entweder ein falsches Format in der Inventardatei oder ein falsches Argument für den ssh-Client an.
Tgr
In der IPv6-Adresse fehlt die obligatorische Bereichs-ID. Natürlich sollten Sie nach Möglichkeit vermeiden, linklokale Adressen zu verwenden.
Michael Hampton

Antworten:

4

Dieser Blog-Beitrag behandelt alle Methoden:

Auszug - Hostnamen und -muster in Ansible 2

Inventar-Hostnamen

Für Ansible 2 müssen Inventar-Hostnamen gültige IPv4 / IPv6-Adressen oder Hostnamen sein (z. B. x.example.com oder x, jedoch nicht x..example.com oder x--). Als Erweiterung werden Unicode-Wortzeichen in Hostnamenbezeichnungen akzeptiert. Fehler führen zu bestimmten Analysefehlern und nicht zu mysteriösen Fehlern während der Ausführung.

Inventar-Hostnamen können auch alphabetische oder numerische Bereiche verwenden, um mehr als einen Host zu definieren. Zum Beispiel definiert foo [1: 3] foo1 bis foo3, während foo [x: z: 2] zu fox und foz erweitert wird. Adressen können numerische Bereiche verwenden: 192.0.2. [3:42].

IPv6-Adressen

Eine Reihe von Problemen beim Parsen von IPv6-Adressen wurde ebenfalls behoben, und ihr Verhalten wurde im gesamten Inventar (INI-Dateien) und in Playbooks (z. B. in Hosts: Zeilen und mit add_host) konsistent gemacht.

Alle empfohlenen IPv6-Adressnotationen (von der Schreibweise aller 128 Bit bis zu den verschiedenen komprimierten Formularen) werden unterstützt. Adressen mit Portnummern müssen als [addr]: port geschrieben werden. Man kann auch hexadezimale Bereiche verwenden, um mehrere Hosts in Inventardateien zu definieren, z. B. 9876 :: [a: f]: 2.

Einige kleine, aber notwendige Bugfixes gehen Hand in Hand mit den Analyseänderungen und beheben Probleme bei der Übergabe von IPv6-Adressen an ssh und an rsync. Zusammengenommen ermöglichen diese Änderungen die Verwendung von IPv6 in der Praxis mit Ansible.

Daher wären Muster wie diese IPv6 zulässig:

  • vollständig spezifizierte 128-Bit-Adresse
  • [addr]: Port
  • Hexadezimalbereiche - 9876 :: [a: f]: 2
  • verschiedene Formen von Kompressionsbereichen - FF01 :: [1: 6]

Vereinfachte Beispiele:

# IPv6 Address                                # Simplified Notation
-----------------------------------------     ----------------------------
- FF01:0000:0000:0000:0000:0000:0000:0001     - FF01::1
- 2031:0000:130F:0000:0000:09C0:876A:130B     - 2031:0:130F::9C0:876A:130B
- 0000:0000:0000:0000:0000:0000:0000:0001     - ::1
- FE80:0000:0000:5EFE:0192.0168.0001.0123     - FE80::5EFE:192.168.1.123
- FE80:0000:0000:0000:1585:4868:495F:D521     - FE80::1585:4868:495F:D521

Verweise

slm
quelle