模块用户不接受 ansible-vault 生成的加密密码?
module user doesn't accept encrypt password generated by ansible-vault?
最近我使用 '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
连同运行ning进程,仍然显示警告
[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 登录。
有什么我遗漏的吗?
您应该遵循所提到的推荐方法之一
here 提供哈希值。这不是 ansible 中的一般保险库加密。这是特定于用户模块的。以下是来自文档:
How do I generate encrypted passwords for the user module? Ansible
ad-hoc command is the easiest option:
ansible all -i localhost, -m debug -a "msg={{ 'mypassword' | password_hash('sha512',
'mysecretsalt') }}"
The mkpasswd utility that is available on most
Linux systems is also a great option:
mkpasswd --method=sha-512
最近我使用 '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
连同运行ning进程,仍然显示警告
[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 登录。
有什么我遗漏的吗?
您应该遵循所提到的推荐方法之一 here 提供哈希值。这不是 ansible 中的一般保险库加密。这是特定于用户模块的。以下是来自文档:
How do I generate encrypted passwords for the user module? Ansible ad-hoc command is the easiest option:
ansible all -i localhost, -m debug -a "msg={{ 'mypassword' | password_hash('sha512',
'mysecretsalt') }}"
The mkpasswd utility that is available on most Linux systems is also a great option:
mkpasswd --method=sha-512