ansible用户模块设置用户密码

ansible用户模块设置用户密码

我的英语不太好,抱歉

我使用 ansible ad-hoc 设置一些用户的密码使用:

python -c“从 passlib.hash 导入 sha512_crypt;导入 getpass;打印 sha512_crypt.using(rounds=5000).hash(getpass.getpass())”

生成加密密码,我得到了这个:

$6$3k8DQBapvmIOZu4W$JMWhRB8kfqttNBI9NuRFZlPFpo6g4cb5v7obrqNaGZepxQ1AFCXdYv5IEU5lJFeHJXouyaQlJADcMtdMCjhXz0

运行 ansible ad-hoc

ansible localhost -m 用户 -a “名称=测试用户密码='$6$3k8DQBapvmIOZu4W$JMWhRB8kfqttNBI9NuRFZlPFpo6g4cb5v7obrqNaGZepxQ1AFCXdYv5IEU5lJFeHJXouyaQlJADcMtdMCjhXz0'状态=当前”

运行正常,但在 /etc/shadow

[root@localhost role_test]# grep testuser /etc/shadow testuser:k8DQBapvmIOZu4W:17420:0:99999:7:::

糟糕,只有部分加密密码,不是完整字符串

ansible localhost -m 用户 -a “名称=testuser 密码='\$6\$3k8DQBapvmIOZu4W\$JMWhRB8kfqttNBI9NuRFZlPFpo6g4cb5v7obrqNaGZepxQ1AFCXdYv5IEU5lJFeHJXouyaQlJADcMtdMCjhXz0' 状态=当前”

运行良好,但看起来不太智能。

那么,如何解决这个问题?谢谢

答案1

这是因为bash变量替换。

尝试:

ansible localhost -m user -a 'name=testuser password=$6$3k8DQBapvmIOZu4W$JMWhRB8kfqttNBI9NuRFZlPFpo6g4cb5v7obrqNaGZepxQ1AFCXdYv5IEU5lJFeHJXouyaQlJADcMtdMCjhXz0 state=present'

相关内容