ansible-user模块使用方法
ansible-user模块使用方法
应用
管理远程主机上的用户,比如创建用户、修改用户、删除用户、为用户创建密钥对等操作。
参数
user:指定要操作的用户名称
uid:指定用户的uid
comment:指定用户的注释信息
expires:指定用户的的过期时间,相当于设置/etc/shadow文件中的第8列
shell:指定用户的默认shell
group:指定用户的基本组
groups:指定用户的附加组,新加时会覆盖原有的附加组,默认append=no
append:配合groups使用,在原有附加组的基础上追加组,append=yes
state present|absent:默认present,表示添加用户或需要用户存在;absent表示删除用户
remove:删除用户时,默认是不删除家目录,remove=no;remove=yes表示删除用户家目录
password:指定用户的密码,需要是加密后的字符串,相当于/etc/shadow文件中的第2列
update_password always|on_create:默认always
generate_ssh_key no|yes:默认为no;yes表示生成ssh密钥对,在用户家目录.ssh/目录中生成id_rsa的私钥和id_rsa.pub的公钥;若已存在同名的密钥,不会覆盖
ssh_key_file:前提是generate_ssh_key=yes,使用此参数生成ssh私钥的路径和名称,对应公钥会在同路径下生成,后缀名".pub"
ssh_key_comment:前提是generate_ssh_key=yes,使用此参数定义公钥中的注释信息,若已存在同名的密钥,不会覆盖;不指定时默认注释信息为"ansible-generated on 远程主机的主机名"
ssh_key_passphrase:前提是generate_ssh_key=yes,使用此参数设置私钥的密码,若已存在同名的密钥,不会覆盖
ssh_key_type:前提是generate_ssh_key=yes,使用此参数设置密钥对的类型,默认为rsa,若已存在同名的密钥,不会覆盖
示例
在所有服务器中创建test用户,若已存在,不进行任何操作
]# ansible all -m user -a 'name=test'
在所有服务器中删除test用户,但不删除此用户的家目录
]# ansible all -m user -a 'name=test state=absent'
在所有服务器中删除test用户,且删除此用户的家目录
]# ansible all -m user -a 'name=test state=absent remove=yes'
指定所有服务器中test用户的基本组为admin(需提前存在),不指定时默认与用户名一样
]# ansible all -m user -a 'name=test group=admin'
指定所有服务器中test用户的附加组为root和admin
]# ansible all -m user -a 'name=test groups=root,admin append=yes'
指定所有服务器中test用户过期时间是2020-05-20
]# date -d 2020-05-20 +%s #获取对应日期的unix时间戳 1589904000 ]# ansible all -m user -a 'name=test expires=1589904000'
修改所有服务器中test用户的密码为'123455'
]# python >>> import crypt >>> crypt.crypt('123455') '$6$B0zo/bCGaUmqFKx8$apGEf9i1Yd4/PE.bhL7P86T6FDir45jE5DQ54/' >>> exit() ansible all -m user -a 'name=test password="$6$B0zo/bCGaUmqFKx8$apGEf9i1Yd4/PE.bhL7P86T6FDir45jE5DQ54/"'
为所有服务器中test用户生成ssh密钥对,生成在/opt目录下,私钥名id_rsa_test,注释信息"test rsa",私钥密码123455
ansible all -m user -a 'name=test generate_ssh_key=yes ssh_key_file=/opt/id_rsa_test ssh_key_comment="test rsa" ssh_key_passphrase=123455'
目录 返回
首页