Ansible创建用户
方法1
用户剧本user_list.yml
---
users:
- name: edy
uid: 10020
first: guo
middle: shi
last: wei
- name: alice
uid: 10021
first: guo
middle: shi
last: wei
---
- name: create user complex
hosts: dev,prod
become: true
vars_files:
- user_list.yml
tasks:
- name: create user use complex vars
user:
name: "{{item.name}}"
uid: "{{item.uid}}"
comment: "{{item.first|capitalize}} {{item.middle|capitalize}} {{item.last|capitalize}}"
# 第一种写法
password: "{{lookup('password', 'password-{{item.name}} chars=digits length=6')|password_hash('sha512')}}"
# 第二种写法
password: "{{lookup('password', 'password-{{item.name}} chars=digits length=6 encrypt=sha512_crypt')}}"
loop: "{{ users }}"
说明:生产一个长度是6位数字的密码,密码保存在当前目录的password-【用户名】的文件中,根据参数chars=digits值的不同,可以设置密码的复杂度,length=6用于设置密码长度。详细参考ansible-doc -t lookup password
方法2
---
- name: create users
hosts: servera
tasks:
- name: create some users
user:
name: "{{item}}"
password: "{{'123456'|password_hash('sha512')}}"
state: present
loop:
- zhangsan
- lisi
说明:loop可以用with_items代替,with_items 可以用于迭代一个列表或字典,循环模块最多的功能就是将重复性的任务简单化,通过{{ item }}获取每次迭代的值。