首页 > 代码库 > ansile(2)模块之user

ansile(2)模块之user

ansible 创建修改用户属性,选项来自官网,如果有出入,已官网为主

参数是否必需默认选项说明
appendnono

yes

no

如果设置yes,只添加groups,不添加在组列表里
commentno

注释
createhomenoyes

yes

no

除非设置为no,否则家目录在创建的时候将被创建。
expiresnoNone
设置用户的过期时间
forceno

yes

no

此选项在使用state=absent时有效,如userder --force
generate_ssh_keynono
为用户生成秘钥
groupnono
设置用户组
groupsno

设置公共组
homeno

设置用户家目录
move_homenono

yes

no

移动用户的家目录,如果目标路径目录不存在的话
nameyes

用户名
non_uniquenono
有选择地使用- u选项时,该选项允许改变非唯一的用户ID值。
passwordno

设置用户密码
removeno

yes

no

当使用state=absent时,与userderl --remove一样
shellno

设置用户shell环境
ssh_key_bitsnodefault set by ssh-keygen
设置key大小
ssh_key_commentnoansible-generated on $HOSTNAME
key注释
ssh_key_fileno.ssh/id_rsa
指定key文件
ssh_key_passphraseno

设置一个SSH密钥的密码。如果没有提供密码,SSH密钥将默认没有密码。
ssh_key_typenorsa
选择指定SSH密钥生成的类型。可用的SSH密钥类型将取决于实现目标主机上。
statenopresent

present

absent

删除与创建
systemnono

yes

no

是否创建为系统用户
uidno

指定用户uid
update_passwordnoalways

always

on_create

always更新密码,如果密码不一致的话。on_create将只在创建时为用户设置密码。


  1. 添加用户指定uid,指定密码

密码必须使用加密的密码,使用加密密码如下:

#yum install python-passlib-1.6.2-2.el7.noarch


生成密码:

#python -c "from passlib.hash import sha512_crypt; import getpass; print sha512_crypt.encrypt(getpass.getpass())"
Password: 
$6$rounds=100000$yAREAXRZhsaV0m9R$BhkAGxurVuF/Lkn0lOUI6S9yvhelugRYtwfUUWwYQL7SdQiQgeVdjHspcrvr2CNK.9CjTGxx1FHPXOB0k/dyR0

使用生成的密码:

# ansible dbserver -m user -a "name=ckl password=$6$rounds=100000$yAREAXRZhsaV0m9R$BhkAGxurVuF/Lkn0lOUI6S9yvhelugRYtwfUUWwYQL7SdQiQgeVdjHspcrvr2CNK.9CjTGxx1FHPXOB0k/dyR0 uid=1003"
172.16.110.49 | SUCCESS => {
    "changed": true, 
    "comment": "", 
    "createhome": true, 
    "group": 1003, 
    "home": "/home/ckl", 
    "name": "ckl", 
    "password": "NOT_LOGGING_PASSWORD", 
    "shell": "/bin/bash", 
    "state": "present", 
    "system": false, 
    "uid": 1003
}

但是密码没生效。


2.添加用户,并未用户生成密码,为秘钥设置密码及类型

# ansible dbserver -m user -a "name=zld uid=1004 generate_ssh_key=yes ssh_key_passphrase=‘147258‘ ssh_key_type=rsa state=present" 
172.16.110.49 | SUCCESS => {
    "changed": true, 
    "comment": "", 
    "createhome": true, 
    "group": 1004, 
    "home": "/home/zld", 
    "name": "zld", 
    "shell": "/bin/bash", 
    "ssh_fingerprint": "2048 cf:1c:d6:f9:c8:98:c6:bf:3c:57:61:2e:df:eb:04:66  ansible-generated on localhost.localdomain (RSA)", 
    "ssh_key_file": "/home/zld/.ssh/id_rsa", 
    "ssh_public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAOeOi5iJNVQZJ6Wdx9lb2DD2ZEq2wVejqfd68ptP1i0Hg4Dvj3qAzZs5ovwqldDpSumNqeN6huZ4dioXm/ZepQ7amXsgYd8rdCxdAo/fkeS5aaTICO3W1TdOSAmrmIGKv+7C15hsplkua9xIJC/E24gLRntEEDWdsy9HXLBehfDMrgQJv8VMCsE/glvLtwqBzzUMaNpBDy7Fpu5y1lPQ88byxQBkgdNSS3R71WrWhh+UNguU0Sv2FHSCh1/xxOMW07JCbre3W4PPIBFDqMxt5Gm2ZFtZLs+jknYAZh5cvRGKBum7KGZTWNGUvT7B/BzE3CpFuQ78bEboLZT+vKwCj ansible-generated on localhost.localdomain", 
    "state": "present", 
    "system": false, 
    "uid": 1004
}


3.强制删除用户

# ansible dbserver -m user -a "name=ckl force=yes state=absent"      
  172.16.110.49 | SUCCESS => {
    "changed": true, 
    "force": true, 
    "name": "ckl", 
    "remove": false, 
    "state": "absent"
}

本文出自 “深呼吸再出击” 博客,请务必保留此出处http://ckl893.blog.51cto.com/8827818/1887063

ansile(2)模块之user