本文共 1887 字,大约阅读时间需要 6 分钟。
user模块是请求的是useradd, userdel, usermod三个指令,goup模块请求的是groupadd, groupdel, groupmod 三个指令。
home:指定用户的家目录,需要与createhome配合使用groups:指定用户的属组uid:指定用的uidpassword:指定用户的密码name:指定用户名createhome:是否创建家目录 yes|nosystem:是否为系统用户remove:当state=absent时,remove=yes则表示连同家目录一起删除,等价于userdel -rstate:是创建还是删除(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密钥类型将取决于目标主机上的实现。
方法1:使用user 模块,更简单,命令如下:
[root@ansible ~]# 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
验证创建的用户:
[root@ansible ~]# ansible ansible_group -m raw -a 'tail /etc/passwd|grep test'online-web-asset-3 | SUCCESS | rc=0 >>test:x:1000:501::/home/admin_group/test:/bin/bashShared connection to 192.168.5.1 closed.
注意:passwd的值不能是明文,passwd关键字后面应该是密文,且密文将被保存在/etc/shadow文件中,密文的生成命令为:
[root@ansible ~]# openssl passwd -salt -1 "you passwd"
然后将生成的密文,如: 填写到ansible ansible_group -m user -a 'name=username password= ’ 中的passwd关键字后面即可。
方法2:使用playbook
创建playbook文件 useradd.yml,内容如下:
[root@ansible ansible]# more useradd.yml ---- hosts: "{ {hosts}}" gather_facts: false user: centos sudo: yes vars:# user: test123 tasks: - name: add user user: name={ {user}} password={ {passwd}} home=/home/admin_group/{ {user}} group=admin_group shell=/bin/bash state: present tags: - user
保存后执行如下命令检测:
[root@ansible ~]# ansible-playbook --syntax-check useradd.yml -e "hosts=qsh_test user=test1 passwd=-11Fe1z.bZ5o."
然后运行playbook,使用 -e选项传入参数
[root@ansible ~]# ansible-playbook useradd.yml -e "hosts=qsh_test user=test1 passwd=-11Fe1z.bZ5o."
转载于:https://blog.51cto.com/qiangsh/2146635