
호스트가 하나인 인벤토리 파일이 있습니다.
10.1.32.123 ansible_ssh_user=방랑 ansible_ssh_pass=방랑
내 yaml
파일:
- hosts: all
sudo: yes
gather_facts: yes
serial: 20
roles:
yaml
비밀번호로 보호하려는 파일이 아니라 내 인벤토리 파일 입니다 . 여기에는 사용자 자격 증명이 포함되어 있기 때문입니다. 플레이북을 실행할 때 인벤토리 파일의 콘텐츠가 해독되지 않기 때문에 가능하지는 않습니다. 파일을 암호화 한 경우에도 마찬가지입니다 yaml
.
ansible-playbook inventory site.yml --ask-vault-pass
ansible_ssh_user=vagrant ansible_ssh_pass=vagrant
자격 증명을 파일에 추가yaml
하고 인벤토리 파일에 IP를 유지하는 방법이 있습니까 ?
문서:
답변1
호스트 파일을 암호화할 수 없다고 생각합니다. 훨씬 더 나은 접근 방식은 자격 증명과 같은 민감한 정보를 ansible-vault로 암호화된 보조 vars 파일에 저장한 다음 해당 파일을 플레이북에 포함시키는 것입니다.
- hosts: all
sudo: yes
gather_facts: yes
vars_files:
- /path/to/encrypted/vars.yml
파일 inventory
에 호스트가 포함되어 있습니다:
10.1.1.2
귀하의 vars/vars.yml
자격 증명은 다음과 같이 저장됩니다.
ansible_ssh_user: vagrant
ansible_ssh_password: vagrant
둘 이상의 호스트를 사용하려면 인벤토리 파일에 그룹을 추가할 수 있습니다. 특정 그룹에 있는 호스트는 동일한 자격 증명을 공유합니다.
[group1]
10.1.1.2
10.1.1.3
[group2]
10.1.1.4
10.1.1.5
이제 플레이북에는 두 개의 호스트 섹션이 있습니다.
- hosts: group1
vars_files:
- vars/group1.yml
- hosts: group2
vars_files:
- vars/group2.yml
group1.yml
및 파일 group2.yml
은 동일한 비밀번호를 공유해야 합니다.