Como anotar endereços IPv6 no arquivo de inventário?


7

Eu tenho uma máquina, que é acessível apenas via ipv6. Está configurado para ssh com a tecla rsa. Agora eu gostaria de gerenciá-lo com o ansible. Infelizmente, isso não é coberto na documentação do inventário .

Então, tentei as seguintes permutações:

  • 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\]

Nada disso deu certo.

Para comparação, adiciono minha .ssh/configentrada:

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

Encontrei dois erros fechados no sistema de rastreamento de problemas, que indicam que o problema está sendo pelo menos parcialmente resolvido: 3879 , 3888

Qualquer conselho sobre este tópico é muito apreciado.


Você tentou usar um arquivo de inventário? E diga-nos os erros que você receber.
guntbert

Sim, tentei usar o arquivo de inventário. As três permutações postadas tiveram origem a partir daí. As exceções são bastante vagas, indicando um formato errado no arquivo de inventário ou um argumento falso para o cliente ssh.
tgr 31/07

O endereço IPv6 está ausente do ID de escopo obrigatório. Obviamente, você deve evitar o uso de endereços locais de link sempre que possível.
Michael Hampton

Respostas:


4

Esta postagem do blog abrange todos os métodos:

trecho - Nomes de host e padrões no Ansible 2

Nomes de host de inventário

A resposta 2 exige que os nomes de host do inventário sejam endereços IPv4 / IPv6 ou nomes de host válidos (por exemplo, x.example.com ou x, mas não x..example.com ou x--). Como extensão, ele aceita caracteres de palavra Unicode nos rótulos de nome de host. Qualquer erro resulta em erros de análise específicos, e não em falhas misteriosas durante a execução.

Os nomes de host de inventário também podem usar intervalos alfabéticos ou numéricos para definir mais de um host. Por exemplo, foo [1: 3] define foo1 a foo3, enquanto foo [x: z: 2] se expande para fox e foz. Os endereços podem usar intervalos numéricos: 192.0.2. [3:42].

Endereços IPv6

Vários problemas com a análise de endereços IPv6 também foram corrigidos, e seu comportamento se tornou consistente no inventário (arquivos .ini) e em playbooks (por exemplo, em hosts: lines e com add_host).

Todas as notações de endereço IPv6 recomendadas (desde soletrar todos os 128 bits até as várias formas compactadas) são suportadas. Endereços com números de porta devem ser escritos como [addr]: port. Também é possível usar intervalos hexadecimais para definir vários hosts em arquivos de inventário, por exemplo, 9876 :: [a: f]: 2.

Algumas pequenas mas necessárias correções acompanham as alterações de análise e corrigem problemas ao passar endereços IPv6 para ssh e rsync. Em conjunto, essas alterações possibilitam o uso do IPv6 na prática com o Ansible.

Portanto, padrões como esses IPv6 seriam permitidos:

  • endereço de 128 bits totalmente especificado
  • [endereço]: porta
  • intervalos hexadecimais - 9876 :: [a: f]: 2
  • várias formas de faixas de compressão - FF01 :: [1: 6]

Exemplos simplificados:

# 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

Referências

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.