AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 760399
Accepted
hookenz
hookenz
Asked: 2016-02-29 20:08:00 +0800 CST2016-02-29 20:08:00 +0800 CST 2016-02-29 20:08:00 +0800 CST

Como configuro o arquivo hosts para hosts no inventário ansible?

  • 772

Comecei a aprender e usar o ansible para configurar meus servidores de teste e produção. Uma coisa que gostaria de fazer é configurar /etc/hosts por meio do arquivo de inventário.

Parece que isso é possível. Aqui está um desses usos: https://gist.github.com/rothgar/8793800

No entanto, sou um pouco verde para o Ansible e não entendo. Alguém pode explicar em inglês simples como faço isso funcionar na prática?

Por exemplo, se meu arquivo de inventário contiver.

[compute]
1.2.3.4 
5.6.7.8

[db]
2.3.4.5
6.7.8.9
10.11.12.13

[all]
compute
db

[all:vars]
...

Eu gostaria de dizer com consistência que meu arquivo hosts após executar o playbook contido

2.3.4.5 db1
6.7.8.9 db2
10.11.12.13 db3
1.2.3.4 compute1
5.6.7.8 compute2

Isso é possível?

ansible
  • 2 2 respostas
  • 6200 Views

2 respostas

  • Voted
  1. Best Answer
    larsks
    2016-03-01T10:24:46+08:002016-03-01T10:24:46+08:00

    Você pode gerar suas entradas de hosts a partir de um modelo. Percorra a lista de grupos, descarte grupos como alle ungroupede, em seguida, percorra a lista de hosts em cada grupo:

    {# this loops over the list of groups.  inside the loop #}
    {# "group" will be the group name and "hosts" will be the #}
    {# list of hosts in that group. #}
    {% for group,hosts in groups.items() %}
    
    {# skip the "all" and "ungrouped" groups, which presumably #}
    {# you don't want in your hosts file #}
    {% if group not in ["ungrouped", "all"] %}
    
    {# generate a hosts entry for each host, using the "loop.index" #}
    {# variable and the group name to generate a unique hostname. #}
    {% for host in hosts %}
    {{host}} {{group}}{{loop.index}}
    {% endfor %}
    
    {% endif %}
    {% endfor %}
    

    O acima está usando {{host}}para o endereço IP, porque isso me permite testá-lo em meu sistema, mas você provavelmente preferiria {{hostvars[host]['ansible_default_ipv4']['address']}}em um ambiente real, a menos que tenha certeza de que está sempre usando endereços IP em seu inventário.

    • 5
  2. Reza Farshi
    2017-02-26T18:54:39+08:002017-02-26T18:54:39+08:00

    No arquivo de inventário:

      [myhosts]
        192.168.29.2 host_name=host1
        192.168.29.3 host_name=host2
    

    No playbook.yaml

        - name: Update /etc/hosts from inventory
      lineinfile: dest=/etc/hosts regexp='.*{{item}}$' line='{{hostvars[item]['ansible_eth1']['ipv4']['address'] }}   {{hostvars[item]['host_name']}} ' state=present
      with_items: '{{groups.myhosts}}'
    
    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve