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つはプラットフォーム間の互換性です。

このタスク/フィルタを正しく使用していますか、それとも何かが欠けていますか?

ベストアンサー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

おすすめ記事