Mac OS X의 "/ etc / ansible /"에서 구성 파일을 찾을 수 없습니다


15

저는 Mac OS X에 있으며 Ansible을 처음 사용합니다 . 설치 방법을 잊었습니다. 나는 통해 생각합니다 pip:

$ pip freeze
altgraph==0.12
ansible==1.9.2

어쨌든 내가 읽고 /etc/ansible/있는 내용 에는에 구성 파일이 있어야 하지만 해당 디렉토리의 내용은 다음과 같습니다.

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

환경 변수가 정의되어 있지 않은 것 같습니다.

$ echo $ANSIBLE_CONFIG
# blank line

Ansible은 내가 알 수있는 한 (local ansible.cfg이없고 ansible사용자 디렉토리 의 폴더에 아무것도 없습니다 ) 작동하지만 혼란 스럽습니다.

누군가 내가 여기에 오지 않는 것을 설명해 주시겠습니까?

답변:


14

내가 아는 바로는 Ansible 구성 파일 ( ansible.cfg)이 사용자 레벨 구성 설정을 위해 여기에있을 수 있습니다.

~/.ansible.cfg

여기에있는 시스템 전체 구성뿐만 아니라; 당신이 그런 파일을 찾을 수 없다고 말하면 :

 /etc/ansible/ansible.cfg

어떻게 든 시스템에 여러 사용자가있는 ~/.ansible.cfg경우 잊어 버린 사용자 디렉토리 중 하나에 플로팅 이있을 수 있습니다.

Ansible을 사용 하면서 Homebrew 공식을pip 확인한 결과 , 최근 9 월 4 일 1.9.2 버전에서 1.9.3 버전까지 충돌했다 . 아마도 Homebrew를 통해 설치 했습니까?

그리고 당신의 주요 관심사는 그것이 필요한지 아닌 것 같습니다 ansible.cfg.

Ansible은 내가 알 수있는 한 (local ansible.cfg이없고 ansible사용자 디렉토리 의 폴더에 아무것도 없습니다 ) 작동하지만 혼란 스럽습니다.

누군가 내가 여기에 오지 않는 것을 설명해 주시겠습니까?

예, 구성하지 않아도 제대로 작동합니다. 대부분의 소프트웨어에서 구성 파일은 코어 시스템 기본값을 무시합니다. 따라서 ansible.cfg누락 된 경우 Ansible은 계속 작동하지만 핵심 시스템 기본값 만 사용합니다. Ansible의 공식 문서에 설명 된대로 :

Ansible의 특정 설정은 구성 파일을 통해 조정할 수 있습니다. 대부분의 사용자에게는 스톡 구성이 충분해야하지만 변경하려는 이유가있을 수 있습니다.

다음 순서로 처리 될 구성 파일에서 변경하고 사용할 수 있습니다.

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

어느 곳에도 없습니다. 그리고 나는 유일한 사용자입니다. git repo에서 복사하여 해당 디렉토리 중 하나에 배치 할 수 있다고 생각합니다.
MikeiLL

잘 했어 homebrew를 통해 설치되지 않았지만 버전 1.9.2입니다. 현재 pip를 통해 다시 설치 ...
MikeiLL

현재 1.9.3이지만 위 위치 중 하나에서 여전히 구성 디렉토리를 찾을 수 없습니다. 있다 ~/.ansible/cp,와 /etc/ansible/같은 내용.
MikeiLL

감사. 말이된다. 재고 구성이 일반적으로 참조 ansible.cfg파일 중 하나에 저장되어 있는지 확실하지 않았습니다 .
MikeiLL

1
@MikeiLL 아, 걱정하지 마십시오. 나의 마지막 편집은 당신의 우려를 마침내 이해했을 때였습니다. 솔직히“핵심 기본값이 있지만 기본값을 무시하는 사용자 구성 파일을 찾은 경우”라는 논리에 의해 작동하지 않는 잘 알려진 소프트웨어는 생각할 수 없습니다. 전체 시스템이 외부 구성 파일에 의존 할 때 발생하는 큰 보안 / 안정성 위험은 해당 파일이 사라지면 전체 시스템이 무너지는 것입니까? 좋은 계획이 아닙니다. 구성 파일이 누락 되어도 아무 일도 일어나지 않는다는 것을 알게되었습니다.
JakeGould

13

homebrew공식은 문자열을 대체 /etc/ansibleconstants.py/usr/local/etc/ansible. 나에게 나쁜 주주처럼 보인다.

나는 /usr/local/etc/ansible후에 없었습니다 brew install ansible. 그러나 유효한 ansible.cfg것을 넣으면 (현재) 영광을 누릴 것입니다.

내 추천 :

  1. brew설치 하는 데 사용하지 마십시오 Ansible.
  2. 설정이와 같은 시스템 환경 전역에 의존하지 않는 것에 대해 명시하십시오 /etc/ansible/ansible.cfg.

코드 참조 :

brew ansible formula 교체 # 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


사용자 공간에서의 홈 브루 작업으로 모든 것이 / usr / local에 있습니다. 이건 괜찮아.
gagarine

3

OSX에서 pip를 사용하여 ansible을 설치했으며 / etc / ansible 또는 내 홈 디렉토리에 ansible.cfg가없는 것을 발견했습니다.

출처 : https://github.com/ansible/ansible/issues/18512

pip는 일반적으로 구성 파일을 설치하지 않으며 가능한 pip는 다르지 않습니다. ansible을 시험 해보고 싶다면 일반적으로 ansible.cfg 파일없이 작동합니다. (일부 인벤토리를 지정해야하지만 원하는 경우 파일이 아닌 명령 줄에서이를 수행 할 수 있습니다). 샘플 구성 파일을 조정하려면 https://github.com/ansible/ansible/blob/devel/examples/ansible.cfg 에서 tarball 또는 소스 저장소에서 가져올 수 있습니다.

인벤토리 파일은 여기에 설명되어 있습니다. http://docs.ansible.com/ansible/intro_inventory.html 명령 행에서 인벤토리에 대한 호스트를 지정하려면 대신 다음과 같이하십시오.

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

명령 행을 통해 단일 호스트를 지정하려면 인벤토리 문자열에 후행 쉼표를 사용하십시오.

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

2

Homebrew가 /etc/ansible디렉토리를 만들거나 구성 또는 호스트 파일을 만들지 않는다는 것을 알았습니다 . 그러나 /etc/ansible디렉토리 를 만들고 github 저장소에서 /etc/ansible디렉토리 로 구성을 복사하면 구성으로 인식됩니다.

해당 구성으로 이동하여 인벤토리 위치를 지정하는 행의 주석을 해제 할 수도 있습니다.

인벤토리 = / etc / ansible / hosts

이 작업을 수행하면 ansible은 다른 설치에서와 동일한 방식으로 homebrew 설치를 수행하며 온라인에서 찾은 설명서를 homebrew 버전으로 활용할 수 있습니다.


/ usr / local / etc /가 인식되지 않았습니다. / etc / ansible / 디렉토리를 만들려고 시도하고 호스트와 ansible.cfg가 제대로 작동했습니다!
aelkz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.