Não é possível encontrar o arquivo de configuração em "/ etc / ansible /" no Mac OS X

11

Estou no Mac OS X e novo no Ansible . Eu esqueço como eu instalei. Eu acho que via pip :

$ pip freeze
altgraph==0.12
ansible==1.9.2

De qualquer forma, pelo que estou lendo, deve haver um arquivo de configuração em /etc/ansible/ , mas o conteúdo desse diretório é apenas:

$ ls -a /etc/ansible/
.       ..      .hosts.swp  hosts       roles

Não parece que exista uma variável de ambiente definida:

$ echo $ANSIBLE_CONFIG
# blank line

O Ansible funciona até onde eu sei (sem um local ansible.cfg e não há nada na pasta ansible no diretório do usuário), mas estou confuso.

Alguém por favor pode explicar o que eu não estou conseguindo aqui?

    
por MikeiLL 19.09.2015 / 19:11

4 respostas

12

Pelo que sei, o arquivo de configuração Ansible ( ansible.cfg ) pode estar localizado aqui para configurações de nível de usuário:

~/.ansible.cfg

Assim como a configuração do sistema localizada aqui; onde você afirma que não é possível encontrar nenhum arquivo desse tipo:

 /etc/ansible/ansible.cfg

Se, de alguma forma, você tiver vários usuários em seu sistema, talvez exista um ~/.ansible.cfg flutuando em um dos diretórios de usuários que você esqueceu?

Você afirma que pode tê-lo instalado usando pip , mas verificando a fórmula Homebrew para Ansible , foi que só passou recentemente da versão 1.9.2 para a 1.9.3 em 4 de setembro . Então talvez você tenha instalado via Homebrew?

E sua principal preocupação parece ser se o ansible.cfg é necessário:

Ansible works as far as I can tell (without a local ansible.cfg, and there’s nothing in the ansible folder in the user dir), but I’m confounded.

Can someone please explain what I’m not getting here?

Sim, deve funcionar bem sem uma configuração. Para a maioria dos softwares, tudo que um arquivo de configuração faz é sobrepor os padrões do sistema principal. Portanto, se ansible.cfg estiver faltando, o Ansible ainda funcionaria, mas estará usando apenas os padrões do sistema principal. Conforme explicado na documentação oficial da Ansible :

Certain settings in Ansible are adjustable via a configuration file. The stock configuration should be sufficient for most users, but there may be reasons you would want to change them.

Changes can be made and used in a configuration file which will be processed in the following order:

* ANSIBLE_CONFIG (an environment variable)
* ansible.cfg (in the current directory)
* .ansible.cfg (in the home directory)
* /etc/ansible/ansible.cfg
    
por 19.09.2015 / 19:25
11

A fórmula homebrew substitui a string /etc/ansible em constants.py por /usr/local/etc/ansible . Parece um mau juju para mim.

Eu não tenho /usr/local/etc/ansible após brew install ansible . No entanto, confirmei que, se você colocar um ansible.cfg válido, ele será honrado (por enquanto).

Minhas recomendações:

  1. Não use brew para instalar Ansible .
  2. Seja explícito sobre sua configuração não dependem de globals de ambiente do sistema, como /etc/ansible/ansible.cfg .

Refs de código:

prepare uma fórmula ansiosa de substituição # 475: link

ansants.py # 61: link

    
por 24.09.2015 / 21:05
2

No OSX, eu tinha instalado ansible usando pip e descobri que ansible.cfg não está presente em / etc / ansible ou em meu diretório inicial.

Fonte: link

pip geralmente não instala arquivos de configuração e pip com ansible não é diferente. Se você quer apenas experimentar, geralmente funciona sem um arquivo ansible.cfg. (Você precisa especificar algum inventário, mas você pode fazer isso na linha de comando, em vez de um arquivo, se quiser). Se você deseja obter um arquivo de configuração de amostra para se adaptar, é possível obtê-lo a partir do tarball ou do repositório de origem aqui: link

Os arquivos de inventário são explicados aqui: link Para especificar hosts para inventário na linha de comando, basta fazer algo como isso:

ansible -i 'host1,host2,host3'  all -m command -a 'hostname'

Se você quiser especificar um único host por meio da linha de comando, use uma vírgula à direita na string de inventário:

ansible -i 'host1,' all -m command -a 'hostname'
    
por 07.02.2018 / 07:46
1

Descobri que o Homebrew não criará um diretório /etc/ansible , nem criará um arquivo config ou host. No entanto, se você criar o diretório /etc/ansible e copiar a configuração do repositório github no diretório /etc/ansible , ele reconhecerá isso como config.

Você também pode querer entrar nessa configuração e descomentar a linha que também especifica o local do inventário para:

inventory = /etc/ansible/hosts

Ao fazer isso, ansible irá executar da mesma forma com uma instalação homebrew como acontece em qualquer outra instalação e a documentação que você encontrar online pode ser utilizada com a versão homebrew.

    
por 04.01.2016 / 18:52

Tags