我正在尝试这样调用Ansible的
据我所见,Ansible以前只使用
我正在安装PIP和Passlib,方法如下...
我本来以为yum调用会正确设置passlib,但它没有起作用,然后我尝试只使用PIP,也没能解决问题,所以我尝试了上面提到的方法,但仍然不起作用。我不确定通过yum安装时是否包括bcrypt,因为当仅使用PIP时似乎不包括,因此为了确保,我两个都试了一下,但都无济于事。
我应该补充说明我在AWS上使用Amazon Linux 2,并启用了epel存储库等。
编辑:我尝试了几个评论中的建议(使用passlib 1.6,验证bcrypt是否与Python配合使用),虽然我可以验证在Python内部测试时passlib有效,但我仍然收到来自Ansible的相同答案“AnsibleFilterError: crypt.crypt does not support 'bcrypt' algorithm”。
我找到唯一与此相关的东西是这里:https://github.com/ansible/ansible/issues/17266,但它描述了默认情况下寻找passlib并且只有当不存在时才回退到crypt.crypt。那么为什么当我手动运行它时Python看到passlib,但从playbook中却没有呢?
password_hash
函数...,也就是说,我想使用该函数对密码进行哈希处理...{{ admin_password | password_hash('bcrypt') }}
我尝试了很多种方法告诉Ansible密码库和Python 2.7的位置,但无论如何,我始终得到相同的结果...
最初的回答:
"AnsibleFilterError: crypt.crypt does not support 'bcrypt' algorithm"
据我所见,Ansible以前只使用
crypt
,但较新的版本(我目前使用的是2.7.9)在有passlib
的情况下会使用它,据我了解,passlib
支持bcrypt(但我的了解有限)。我已将以下内容添加到我的主机文件中...ansible_python_interpreter = /usr/bin/python2.7
我正在安装PIP和Passlib,方法如下...
- name: Install PY stuff...
yum:
name: ['python2-pip','python2-passlib']
state: present
- name: Ensure bcrypt support is installed for python passlib
pip:
name: "passlib[bcrypt]"
executable: pip-2.7
我本来以为yum调用会正确设置passlib,但它没有起作用,然后我尝试只使用PIP,也没能解决问题,所以我尝试了上面提到的方法,但仍然不起作用。我不确定通过yum安装时是否包括bcrypt,因为当仅使用PIP时似乎不包括,因此为了确保,我两个都试了一下,但都无济于事。
我应该补充说明我在AWS上使用Amazon Linux 2,并启用了epel存储库等。
编辑:我尝试了几个评论中的建议(使用passlib 1.6,验证bcrypt是否与Python配合使用),虽然我可以验证在Python内部测试时passlib有效,但我仍然收到来自Ansible的相同答案“AnsibleFilterError: crypt.crypt does not support 'bcrypt' algorithm”。
我找到唯一与此相关的东西是这里:https://github.com/ansible/ansible/issues/17266,但它描述了默认情况下寻找passlib并且只有当不存在时才回退到crypt.crypt。那么为什么当我手动运行它时Python看到passlib,但从playbook中却没有呢?
python2-passlib
?那不是用于较旧版本的Python吗?你有没有相关阅读材料的链接可以提供给我看看? - undefined