2017-11-09 1 views
0

저는 Cumulus-Linux (whitebox) 네트워킹을위한 자동화 작업을하고 있습니다. 나는 Animal Vault를 사용하여 새로운 Cumulus 스위치에 내장 된 로컬 계정에 대한 내 플레이 북의 암호를 암호화합니다. 그러나, 제가 플레이 북을 실행할 때, 내 볼트 파일에서 사용자 이름 변수를 읽을 수는 있지만, 내가 정의한 암호 변수는 읽지 못할 수도 있습니다. Ansible이 암호를 설정하는 것을 확인할 방법이 없습니다. 물론 암호는 -vvvv Ansible 출력에서도 암호화됩니다. 내가 본 모든 Ansible 볼트 예를 당 Anothing Vault가 정의 된 변수를 읽지 않습니다

는 내 변수는 같은 (암호화를 참조 암호화되지 않은 변수)로 정의됩니다

  • "사용자"에있는 "vault_user"에서의 값을 가져옵니다 내 볼트 암호화 된 변수 파일.
  • "password"는 "vault_password"에서 해당 값을 가져옵니다.이 값은 또한 내 볼트 암호화 된 파일에 있습니다.

나의 현재 각본 구조 :

root 
--> ansible.cfg 
--> hosts 
--> main.yml (main playbook) 
--> group_vars 
    --> all 
     --> main.yml (where unencrypted "user" and "password" declared) 
     --> vault.yml (encrypted, has values for "vault_user" and "vault_password") 

수정 된 계정이 만들어 내 각본 /의 실제 부분 : group_vars/모든// 주에서

- name: create_admin_account 
    user: 
     name={{ user }} 
     shell=/bin/bash 
     password={{ password }} 
     groups=sudo 
     append=yes 

변수 정의. yml

user: "{{ vault_user }}" 
password: "{{ vault_password }}" 

그런 다음 Vault-en (실제 계정 정보를 공유하지 않음) 암호화 되 파일, /group_vars/all/vault.yml는 :

vault_user: 'xxxx' 
vault_password: 'yyyy' 

암호화 암호는 별도의 파일에 저장되고 내가 (대신 젠킨스 자동화를 통해 파일에서/Github에서를 Ansible 포인트 secured.cfg에 볼트 암호 파일을 정의).

인한 문제 :이 작전을 실행하면 성공적으로 완료하고, 사실 내 볼트 파일을 읽고 'XXXX'사용자 계정을 생성에서와

. 그러나 나중에 계정 정보를 사용하여 로그인 할 수 없기 때문에 계정 비밀번호를 내가 정의한 값으로 설정하는 것으로 보이지 않습니다. 나는 계정이 제대로 생성되었는지 확인한 후 sudoers 그룹에 존재합니다.

무언가가 금고 "사용자"변수를 읽을 수 있다면 왜 "비밀번호"변수를 읽지 않는 것입니까?

나는 암호화되지 않은 일반 텍스트로 볼트 파일을 사용하여 실행하려고했는데, 여전히 "비밀번호"변수를 올바르게 읽을 수 없습니다.

아무도 해킹이나 평범한 텍스트 값 Anabilities가 실행될 때이 변수에 삽입하는 것을 알 수 있습니까 (이것은 엄청난 보안 위험이되므로 바보 같은 질문 일 수 있습니다).

당신이 맥 OS에서 실행되었다 않는

답변

1

, 당신은 user 결절의 password 인수 하지 일반 텍스트 암호를 암호 해시를 제공해야합니다.

Reference

:

password

선택적으로이 암호화 되 값으로 사용자의 암호를 설정합니다. 플레이 북에서 github 예제 디렉토리의 사용자 예제를보십시오. 이러한 암호 값을 생성하는 다양한 방법에 대한 자세한 내용은 http://docs.ansible.com/ansible/faq.html#how-do-i-generate-crypted-passwords-for-the-user-module을 참조하십시오. Darwin 시스템에 대한 참고 사항입니다.이 값은 일반 텍스트 여야합니다. 보안 문제를 조심하십시오.

즉, 보안 볼트 암호화 파일에 암호 해시를 저장하는 데 추가 된 보안 값은 없습니다. 대상 시스템의 파일 /etc/passwd에서 읽을 수있는 값과 같으며 기본적으로 모든 사람이 읽을 수 있습니다. (이 큰 보안 위험이 될 것 같은, 바보 같은 질문이 될 수도 있습니다!)


는 사람이 해킹 또는 일반 텍스트 값 Ansible가 실행이 변수에 삽입되는 것을 볼 수있는 방법을 알고 있나요?

- debug: 
    var: password 

엄밀히 말하면, 경우가 화면에 debug 모듈의 출력이 원시 값 (변수가 인용 부호와 같은 이스케이프 문자가 포함 된 대부분의 경우)되지 않은 있습니다. 그런 다음 값을 확인하는 유일한 방법은 copy 모듈을 사용하고 content 매개 변수에 변수를 제공하는 것입니다.

+0

감사합니다. 디버그 옵션을 시도해 보도록하겠습니다. 변수에 무엇이 들어 있는지 알 수 있습니다. 정확히 무엇이 잘못되었는지 정확히 파악할 수 있습니다. – riddleOFst33l

관련 문제