Ansible은 비밀번호를 설정하지 않고 사용자를 생성합니다.

Ansible은 비밀번호를 설정하지 않고 사용자를 생성합니다.

임의의 비밀번호를 설정하고 이를 사용하여 사용자를 생성해 보십시오.

변하기 쉬운:

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

관련 정보