[devops@server1 ansible]$ vim useradd.yml##创建用户文件
[devops@server1 ansible]$ pwd
/home/devops/ansible
[devops@server1 ansible]$ cat useradd.yml
---
- hosts: all
vars_files:
- userlist.yml
tasks:
- name: create user
user:
name: "{{ item.user }}"
password: "{{ 'item.pass' | password_hash('sha512') }}"
state: present
loop: "{{ userlist }}"
[devops@server1 ansible]$ vim userlist.yml##创建用户列表文件
[devops@server1 ansible]$ cat userlist.yml
---
userlist:
- user: user1
pass: 123
- user: user2
pass: 456
- user: user3
pass: 789
[devops@server1 ansible]$ ansible-playbook useradd.yml ##执行文件
[devops@server1 ansible]$ cat /etc/passwd##查看用户是否添加
但这样很不安全,用cat命令就可以查看到所有的用户和密码
我们可以通过ansible-vault对其进行加密,加密后查看时智慧看到加密后的信息,无法得到明文密码
[devops@server1 ansible]$ ansible-vault encrypt userlist.yml
New Vault password:
Confirm New Vault password:
Encryption successful
当想查看时可以通过view命令来查看,使用命令后输入正确密码就可以看到用户列表的信息了(设置密码时要符合密码格式,不然可能无法切换用户,我的密码为纯数字经测试后就无法切换用户)
加密后也无法直接进行推送
推送时需要添加参数
[devops@server1 ansible]$ ansible-playbook useradd.yml --ask-vault-pass##添加参数,输入正确密码后就可以推送了