Comments (6)
Hi @vreitech
Hashing and encrypting strings and passwords
If passlib is not installed then the crypt module is used, only if crypt module cannot be used the error is triggered; looking at the crypt module might reveal what is the issue.
from docker-ansible.
My thinking is that python3-passlib
as a package could be added if a user requires, but that it is not distinctly part of Ansible but rather using an external function? If it were a core part of either the ansible-core
or ansible
packages then it would be installed, however, it doesn't seem to be so?
Or, am I missing something and this is a core part of the build?
from docker-ansible.
As it described at https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html filter's page:
Hash types available depend on the control system running Ansible, ‘hash’ depends on hashlib, password_hash depends on passlib. The crypt is used as a fallback if passlib is not installed.
Form this point python3-passlib doesn't looks like a mandatory core component. And at same time we are getting wrong BCrypt hash value without passlib (i. e. using crypt library).
from docker-ansible.
So, are you suggesting that we leave it without, or is there a convincing argument that it should be included?
from docker-ansible.
Complicated.
Used google a bit to find some information about "ansible password_hash bcrypt". And all that i got was people either had error message about crypt.crypt not supports bcrypt algorithm or had some kinds of errors after passlib package/module has been installed. Btw didn't got any information about someone got correct bcrypt hash not using passlib, but didn't even tried to find info about it tbf.
At same time adding python3-passlib
package "switches" password_hash
Ansible module to using passlib which probably would broke people playbooks behavior (don't believe in that tbh). I suggest it should not be included into current images, but probably should be added into images which based on future Ansible versions. Or maybe it should be versions of images with passlib for each Linux distribution.
Another way to handle the problem is to add installation of passlib python module through ansible.builtin.pip
module. I've tested it on your images, and beginning from 2.12 version it works on all Linux distributions.
Only one argument still for adding the package into the container: it fixes the issue without having to add something like apt-get -y update && apt-get -y install python3-passlib
by user. Counter-arguments was above.
Personally for me the problem is solved, thanks for questions.
from docker-ansible.
From what I understand, I will leave as is at the moment. But if needed in the future I might re-open it. Thanks for your explanations. 😸
from docker-ansible.
Related Issues (20)
- Install "ansible" collection (pip package) HOT 3
- building failed from alpine image HOT 2
- Request: Immutable tags on docker hub HOT 9
- Dockerfile for ansible 2.9 take the latest mitogen version HOT 3
- container restarting loop HOT 2
- Wrong ansible versions in the ubuntu- and alpine- based ansible-2.11 images HOT 2
- Error for local steps with ansible:2.9-alpine-3.12 container HOT 2
- Wrong Docker image tags for Alpine versions
- All tags seem to run ansible core 2.13.1 HOT 3
- ERROR! Invalid play strategy specified: mitogen_linear when using ansible-base/alpine316/Dockerfile HOT 3
- ARM64v8 images HOT 7
- Include pymssql python and ansible collection community-general dependencies HOT 2
- Alpine 3.17 with Ansible-lint issue with `packaging` HOT 1
- ansible-galaxy requires resolvelib <0.6.0, >=0.5.3 HOT 4
- New architecture for image with latest tag on Docker Hub HOT 6
- ansible-galaxy collection list is rather old HOT 3
- Version 2.15-ubuntu-22.04 unable to run playbook HOT 2
- Ansible 2.16 HOT 2
- ansible-galaxy requires resolvelib<0.9.0,>=0.5.3 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from docker-ansible.