Existe algo como uma função de mapa no fantoche?

2

[Todas as sugestões sobre um título melhor são bem-vindas]

Para melhor ou pior, atualmente tenho uma estrutura de dados como assim (yaml)

servers:
  server1.example.com:
    private_ip: 10.0.0.1
    public_ip: 22.33.44.1
  server2.example.com:
    private_ip: 10.0.0.2
    public_ip: 22.33.44.2
global_roles:
  nagios: 
    - server1

- server2

Eu posso transformar isso em fantoche e fazer coisas como:

$nagios_monitor = $global_roles['nagios'][0]
$private_ip["${nagios_monitor}.example.com"]['private_ip']

O que eu quero é uma maneira de obter uma matriz de IPs privados para todos os servidores nagios listados. Existe uma boa maneira de fazer isso com a minha estrutura de dados existente?

Se a estrutura de dados precisar ser alterada, para que isso funcione muito bem, sugestões sobre uma boa maneira de apresentar esses dados para o fantoche também são bem-vindas. Eu suspeito que uma mudança como essa tornaria a vida geralmente mais fácil, mas há um pouco de código existente que precisaria ser mudado, e eu realmente não gostaria de nenhum passo errado.

    
por mc0e 12.07.2016 / 06:59

1 resposta

0

Sim, há uma função de mapa no fantoche. link

Algo parecido com isso pode ser o que você quer fazer:

$nagios_servers = $global_roles['nagios']
$ip_addresses = $nagios_servers.map |$server| { $private_ip["${server}.example.com"]['private_ip'] }

Requer o analisador futuro em 3.8 e é incluído automaticamente a partir de 4.0.

    
por 23.07.2016 / 13:35

Tags