1

最近、「user」モジュールを使用して、vars/main.yml で提供されるパスワードでユーザーを作成しました

- name: Create pamuser
  user:
    name: pamuser
    password: "{{ pamuser_pass }}"
    groups: wheel
    append: yes
  tags: pamuser

プレイブックを実行すると、この警告が表示されます

TASK [prerequisite : Create pamuser] *****************************************************************************
[WARNING]: The input password appears not to have been hashed. The 'password' argument must be encrypted for this
module to work properly.

次に、ansible-vault encrypt_string コマンドを使用"pamuser_pass"して、プレーンテキストを ansible-vault から提供されたボールト パスワードに置き換えて、特定の変数のみを暗号化します。

/vars/main.yml の内容

---
# vars file for prerequisite role
pamuser_pass: !vault |
              $ANSIBLE_VAULT;1.1;AES256
              65643265346231613137396339303834396663383466636631646337303235306137386534396266
              3364333534616238396465626436376561323762303139620a376630643131323133336164373237
              64663332363233303032636638306566303034393137636533373332383334333439663930613232
              3737

次に、現在の pamuser を削除し、コマンドでプレイブックを再実行します

ansible-playbook playbook.yaml --tags "pamuser" --ask-pass -K --ask-vault-pass

実行中のプロセスに加えて、それでも警告が表示されます

[WARNING]: The input password appears not to have been hashed. The 'password' argument must be encrypted for this
    module to work properly.

結果は id pamuser で問題ないように見えますが、ssh pamuser@example.com でログインしてから通常のパスワードを入力すると、パスワードが機能しません。その pamuser でログインできません。

見逃したものはありますか?

4

2 に答える 2

2

ハッシュを提供するには、ここで説明されている推奨される方法のいずれかに従う必要があります 。ansible の一般的な Vault 暗号化ではありません。これは、ユーザー モジュールに固有です。以下はドキュメントからです:

ユーザー モジュールの暗号化されたパスワードを生成するにはどうすればよいですか? Ansible ad-hoc コマンドが最も簡単なオプションです。

    ansible all -i localhost, -m debug -a "msg={{ 'mypassword' | password_hash('sha512',
  'mysecretsalt') }}"

ほとんどの Linux システムで利用できる mkpasswd ユーティリティも優れたオプションです。

mkpasswd --method=sha-512
于 2020-05-07T19:03:52.687 に答える