
임의의 비밀번호를 설정하고 이를 사용하여 사용자를 생성해 보십시오.
변하기 쉬운:
users:
- username: myuser
password: "{{ 99999999999999 | random | to_uuid }}"
역할:
- name : Add user accounts
user:
name: "{{ item.username }}"
shell: /bin/bash
groups: sudo,users,admin,adm,ubuntu
password: '{{ item.password | password_hash("sha512") }}'
become: true
with_items: "{{ users }}"
- name: Store users' password in file
copy:
content: "{{ item.password }}"
dest: /home/{{ item.username }}/password.txt
mode: 0600
owner: "{{ item.username }}"
become: true
with_items: "{{ users }}"
이는 OSX ansible 워크스테이션에서 구성되었으며 사용자 계정이 구성된 인스턴스는 Ubuntu 14.04 인스턴스입니다.
오류 없이 단계가 완료되고 사용자의 홈 폴더에 비밀번호.txt가 생성되고 비밀번호로 예상되는 uuid 문자열이 채워집니다. 또한 /etc/shadow
관련 사용자를 위해 sha512와 유사한 문자열을 추가했습니다.
/home/myuser/password.txt
:
df81ab5c-c06c-5a2c-b08a-28d52b3a2f6f
/etc/shadow
:
myuser:$6$rounds=656000$YKieOBXtL6UKP0lO$5zgyi9D9tmbINkoDVL0EghbCCYInKdyPJ2UFnrDFLAQkB2x7sWBrjKS0uTySvcDGF6jUN1noMvaVD9jp/Dxx71:17193:0:99999:7:::
/var/log/auth.log
실패 후 su myuser
:
pam_unix(su:auth): authentication failure; logname=ubuntu uid=1000 euid=0 tty=/dev/pts/1 ruser=ubuntu rhost= user=myuser
pam_authenticate: Authentication failure
FAILED su for myuser by ubuntu
- /dev/pts/1 ubuntu:myuser
sudo -i
그러나 해당 사용자나 su myuser
다른 계정의 명령 에는 비밀번호가 작동하지 않는 것으로 나타났습니다 .
OSX와 Linux가 주요 비호환성을 유발할 수 있다는 내용을 읽었지만, 제가 아는 한 passlib의 |password_hash('sha512')
판매 포인트 중 하나는 플랫폼 간 호환성입니다.
이 작업/필터를 올바르게 사용하고 있습니까, 아니면 뭔가 빠졌습니까?
답변1
5년 9개월을 쓰다보니 그냥 버리고 싶었어요. :) 필터와 관련이 있는지는 모르겠지만 Galaxy에 Community.general 컬렉션을 설치하고 이 필터를 사용하여 비밀번호를 생성했는데 모든 것이 잘 작동합니다. 다시 이 질문이 제기된 지 5년이 지났습니다.
---
- name: Test
hosts: localhost
vars:
username: "Jimmy"
password: lookup('community.general.random_string', base64=true)
tasks:
- name : Add user accounts
user:
name: "{{ username }}"
password: '{{ password | password_hash("sha512") }}'
become: true