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


15

Estou no Mac OS X e sou novo no Ansible . Eu esqueço como eu instalei. Eu penso 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 /etc/ansible/, mas o conteúdo desse diretório é apenas:

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

Parece que não há uma variável de ambiente definida:

$ echo $ANSIBLE_CONFIG
# blank line

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

Alguém pode explicar o que não estou chegando aqui?

Respostas:


14

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

~/.ansible.cfg

Bem como a configuração de todo o sistema localizada aqui; onde você declara que não consegue encontrar esse arquivo:

 /etc/ansible/ansible.cfg

Se, de alguma forma, você tiver vários usuários em seu sistema, talvez haja uma ~/.ansible.cfgflutuação em um dos diretórios de usuário dos quais você esqueceu.

Você declara que pode instalá-lo usando pip, mas, ao verificar a fórmula do Homebrew para o Ansible , ele passou da versão 1.9.2 para 1.9.3 em 4 de setembro . Então, talvez você o tenha instalado via Homebrew?

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

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

Alguém pode explicar o que não estou chegando aqui?

Sim, deve funcionar bem sem uma configuração. Para a maioria das peças de software, tudo o que um arquivo de configuração faz é substituir os padrões do sistema principal. Portanto, se ansible.cfgestiver faltando, o Ansible ainda funcionaria, mas apenas usaria os padrões do sistema principal. Conforme explicado na documentação oficial da Ansible :

Certas configurações no Ansible são ajustáveis ​​através de um arquivo de configuração. A configuração de estoque deve ser suficiente para a maioria dos usuários, mas pode haver razões pelas quais você deseja alterá-los.

As alterações podem ser feitas e usadas em um arquivo de configuração que será processado na seguinte ordem:

* ANSIBLE_CONFIG (an environment variable)
* ansible.cfg (in the current directory)
* .ansible.cfg (in the home directory)
* /etc/ansible/ansible.cfg

não em nenhum lugar. e eu sou o único usuário. Eu acho que eu poderia simplesmente copiá-lo do repositório git e colocá-lo em um desses diretórios.
MikeiLL

Boa decisão. Não foi instalado via homebrew, mas era a versão 1.9.2. reinstalar via pip no momento ...
MikeiLL

agora na 1.9.3, mas ainda não conseguiu encontrar um diretório de configuração em nenhum dos locais acima. Existe ~/.ansible/cpe /etc/ansible/com o mesmo conteúdo.
MikeiLL

Obrigado. Faz sentido. Eu só não tinha certeza se a configuração de estoque era normalmente armazenada em um dos ansible.cfgarquivos referenciados .
MikeiLL

1
@ MikeiLL Nah, não se preocupe. Minha última edição foi quando finalmente entendi suas preocupações. Sinceramente, não consigo pensar em um software conhecido que não opere pela lógica de "Terei padrões principais, mas se eu encontrar um arquivo de configuração do usuário que substituirá os padrões". O grande risco de segurança / estabilidade que você obtém quando todo o seu sistema depende de um arquivo de configuração externo é que, se esse arquivo desaparecer, o sistema inteiro entrará em colapso? Não é um bom plano. Feliz agora você entende que, se o arquivo de configuração estiver ausente, nada de ruim acontece.
precisa saber é o seguinte

13

A homebrewfórmula substitui a corda /etc/ansibleno constants.pycom /usr/local/etc/ansible. Parece ruim para mim.

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

Minhas recomendações:

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

Refs do código:

substituição da fórmula ansible do brew # 475: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/ansible.rb#L475

ansible constants.py # 61: https://github.com/ansible/ansible/blob/v1.9.3-1/lib/ansible/constants.py#L61


O homebrew trabalha no espaço do usuário para que tudo esteja em / usr / local. Isto é bom.
Gagarine 31/08/16

3

No OSX, eu instalei o ansible usando o pip e descobri que o ansible.cfg não está presente no / etc / ansible ou no meu diretório pessoal.

Fonte: https://github.com/ansible/ansible/issues/18512

O pip geralmente não instala arquivos de configuração e o pip com ansible não é diferente. Se você apenas deseja experimentar o ansible, geralmente funciona sem um arquivo ansible.cfg. (Você precisa especificar algum inventário, mas pode fazê-lo na linha de comando e não em um arquivo, se desejar). Se você deseja obter um exemplo de arquivo de configuração para se adaptar, é possível obtê-lo no tarball ou no repositório de origem aqui: https://github.com/ansible/ansible/blob/devel/examples/ansible.cfg

Os arquivos de inventário são explicados aqui: http://docs.ansible.com/ansible/intro_inventory.html Para especificar hosts para inventário na linha de comando, basta fazer algo assim:

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

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

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

2

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

Você também pode entrar nessa configuração e descomentar a linha que especifica a localização do inventário, além de:

inventário = / etc / ansible / hosts

Ao fazer isso, o ansible funcionará da mesma maneira com uma instalação de homebrew do que em qualquer outra instalação e a documentação que você encontra online pode ser utilizada com a versão homebrew.


/ usr / local / etc / não foi reconhecido. Tentei criar o diretório / etc / ansible / e movi os hosts e ansible.cfg funcionou bem!
aelkz
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.