当前位置: 移动技术网 > 网络运营>服务器>Linux > ansible-playbook批量创建用户并配置sudo权限

ansible-playbook批量创建用户并配置sudo权限

2020年07月16日  | 移动技术网网络运营  | 我要评论

1.业务侧需求

多台主机批量新建用户
用户名:app
用户组:app
密码:Alf#!@wq(此处仅为示例)
家目录:/home/app
用户需要sudo指令: app ALL=(ALL) NOPASSWD:/usr/bin/cat,/usr/bin/tail,/usr/sbin/ss,/usr/bin/netstat,/usr/bin/vi,/usr/bin/mkdir,/usr/bin/kill,/usr/bin/rpm,/usr/bin/systemctl,/usr/sbin/service,/usr/bin/yum,/usr/bin/ps

2.任务分解

#下述2个步骤ansible服务端单独执行
Step1.将预设置的用户密码进行加密,转化为密文。
Step2.ansible服务端编写新增的sudofile文件

#下述4个步骤通过ansible-playbook执行
Step3.利用ansible user模块批量创建用户并设置密码
Step4.将编写好的sudofile文件通过ansible copy模块拷贝至目标主机/tmp/sudofile
Step5.利用ansible shell模块在目标主机将sudofile文件追加至/etc/sudoers文件中
Step6.删除/tmp/sudofile文件

3.需求实现

  1. 利用python模块将明文密码转化为密文
[root@ansible yml]# python -c 'import crypt;print(crypt.crypt("Alf#!@wq","app"))'
apQ.IZHqPUR46
  1. ansible服务端/scripts目录下创建sudofile文件,并添加如下内容:
[root@ansible yml]# vi /scripts/sudofile 
Cmnd_Alias PASSADMIN = /usr/bin/cat,/usr/bin/tail,/usr/sbin/ss,/usr/bin/netstat,/usr/bin/vi,/usr/bin/mkdir,/usr/bin/kill,/usr/bin/rpm,/usr/bin/systemctl,/usr/sbin/service,/usr/bin/yum,/usr/bin/ps
app	ALL=(ALL)	NOPASSWD: PASSADMIN
  1. 编写playbook剧本
[root@ansible yml]# cat useradd.yml 
---
    - hosts: all
      gather_facts: no
      tasks: 
      - name: add app user to remote host
        user: 
          name: app
          home: /home/app
          password: apQ.IZHqPUR46
          state: present
      - name: copy sudo file to remote host
        copy: src=/scripts/sudofile dest=/tmp/sudofile
      - name: attach sudofile to /etc/sudoers
        shell: cat /tmp/sudofile >> /etc/sudoers 
      - name: rm remote host sudofile
        file: 
          path: /tmp/sudofile
          state: absent
[root@ansible yml]# 

4.编辑ansible hosts文件

[root@ansible yml]# cat /etc/ansible/hosts
[zte]
10.142.1.[1:12]     ansible_ssh_user=root ansible_ssh_pass='password'
[root@ansible yml]# 

5.运行ansible-playbook剧本
找到剧本放置的目录,执行ansible-playbook

[root@ansible yml]# ansible-playbook useradd.yml 

注释:ansible批量创建用户的方式有很多种,本文只列举一种方式请参考,有问题评论区讨论。

本文地址:https://blog.csdn.net/weixin_43770382/article/details/107314916

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网