如果您在Linux或Unix系统上使用Ansible用户模块进行用户管理,则需要加密密码才能为用户设置密码,而无需使用提示。在macOS系统上,密码参数值的值必须为明文。本文将演示如何生成与Ansible[参考:安装Ansible(在Fedora/RHEL 8/CentOS 8/Debian/Ubuntu/Arch/openSUSE中)]用户模块一起使用的Linux用户加密密码。在Linux系统上,有多种生成哈希用户密码的方法,一种方法是使用python,另一种方法是使用mkpasswd命令行实用程序,还有许多其他方法。
使用Python3生成加密的密码 要生成哈希,必须在系统上安装python3软件包,根据您的操作系统,可以使用以下命令来安装软件包。 针对CentOS: $ sudo yum -y install epel-release $ sudo yum install python3 参考:在CentOS 8上安装Python 3和Python 2,及设置默认Python版本。 针对Ubuntu/Debian: sudo apt update sudo apt install python3 要生成哈希,请使用如下命令: python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())' 它将要求您输入并确认密码,如下:
然后,在使用用户python模块时,您将使用打印为密码参数值的加密密码。
使用Python2生成加密的密码 如果使用Python2,例如CentOS 7服务器,请首先安装pip: sudo yum -y install python-pip 然后确保已安装Passlib密码哈希库: sudo pip install passlib 使用以下命令生成加密的密码: python -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())' 以下是大致的输出,如下:
使用mkpasswd生成加密的密码 您还可以使用大多数Linux系统上可用的mkpasswd实用程序来生成哈希密码。 安装mkpasswd的方法如下。 针对Ubuntu/Debian: $ sudo apt updatee $ sudo apt install mkpasswd 针对CentOS/Fedora: sudo yum install expect 产生密码: $ mkpasswd --method=sha-512
测试生成的加密密码 我们可以使用加密的密码创建用户,并确认我们可以使用生成的密码登录: $ python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'
创建用户创建playbook: $ vim user_create.yml 增加: --- - name: Create demo user hosts: localhost become: yes become_method: sudo vars: users: - username: demo password: ... ... tasks: - name: Create user demo user: name: "{{ item.username }}" shell: /bin/bash createhome: yes group: wheel generate_ssh_key: yes ssh_key_bits: 2048 password: "{{ item.password }}" update_password: always with_items: "{{ users }}" 注:请自行添加password,如下图所示:
执行playbook以创建用户: $ ansible-playbook user_create.yml --user=jkmutai --ask-pass --ask-become-pass
确认用户已创建: $ getent passwd demo demo:x:1002:10::/var/home/demo:/bin/bash 切换到用户以确认加密密码是否正常: $ su - demo
删除用户: $ sudo userdel -r demo $ id demo id: ‘demo’: no such user
结语 以上就是如何为Ansible生成加密的Linux用户密码的全部内容。
相关主题 |