user模块是请求的是useradd, userdel, usermod三个指令,goup模块请求的是groupadd, groupdel, groupmod 三个指令。
user模块
home:指定用户的家目录,需要与createhome配合使用
groups:指定用户的属组
uid:指定用的uid
password:指定用户的密码
name:指定用户名
createhome:是否创建家目录 yes|no
system:是否为系统用户
remove:当state=absent时,remove=yes则表示连同家目录一起删除,等价于userdel -r
state:是创建还是删除(present,absent)
shell:指定用户的shell环境
generate_ssh_key:是否为相关用户生成SSH密钥。 这不会覆盖现有的SSH密钥。
ssh_key_bits:可选择指定要创建的SSH密钥中的位数。
ssh_key_passphrase:设置SSH密钥的密码。 如果没有提供密码,SSH密钥将默认没有密码。
ssh_key_file:指定SSH密钥文件名(可选)。 如果这是一个相对的文件名,那么它将是相对于用户的主目录。
ssh_key_type:指定要生成的SSH密钥的类型(可选)。 可用的SSH密钥类型将取决于目标主机上的实现。
使用ansibile创建用户有两种方法
方法1:使用user 模块,更简单,命令如下:
[[email protected] ~]# ansible ansible_group -m user -a ‘name=test password=-18SyrVeFt/xU uid=1000 shell=/bin/bash home=/home/admin_group/test group=admin_group state=present‘ --sudo
验证创建的用户:
[[email protected] ~]# ansible online-web-asset -m raw -a ‘tail /etc/passwd|grep test‘
online-web-asset-3 | SUCCESS | rc=0 >>
test:x:1000:501::/home/admin_group/test:/bin/bash
Shared connection to 192.168.5.1 closed.
注意:passwd的值不能是明文,passwd关键字后面应该是密文,且密文将被保存在/etc/shadow文件中,密文的生成命令为:[[email protected] ~]# openssl passwd -salt -1 "you passwd"
然后将生成的密文,如: 填写到ansible ansible_group -m user -a ‘name=username password= ’ 中的passwd关键字后面即可。
方法2:使用playbook
创建playbook文件 useradd.yml,内容如下:
[[email protected] ansible]# more useradd.yml
---
- hosts: manage
user: root
sudo: no
vars:
tasks:
- name: add user
action: user name=username password=**********c group=admin_group shell=/bin/bash home=/home/admin_group/username
tags:
- user
保存后执行如下命令运行playbook
#ansible-playbook useradd.yml即可
原文地址:http://blog.51cto.com/qiangsh/2146635
时间: 2024-10-10 05:04:46