天天看点

ansible-playbook使用普通用户提权

方法一

  1. 在受管服务器上将monitor加入/etc/sudoers文件,确保monitor用户可以执行sudo su -
[root@node01:/root]$ cat /etc/sudoers | grep monitor
monitor      ALL=(ALL)     ALL      

2.编辑ansible所需的hosts文件信息,将受管的服务器地址192.168.56.100加入hosts文件中。

[node01]
192.168.56.100 ansible_ssh_user=monitor ansible_ssh_pass='wwwwww' ansible_become_pass='wwwwww'      

3.在ansible管理服务器/home/monitor使用monitor用户编写user.yml文件

[monitor@node02 ~]$ cat user.yml 
- hosts: node01 
  remote_user: monitor 
  become: yes
  become_method: sudo 
  vars:
    user: test 
  tasks:
    - name: add user
      action: user name={{ user }}  home=/home/{{ user }}
  tags:
    - user      

4.执行ansible-playbook命令

[monitor@node02 ~]$ ansible-playbook -i hosts user.yml

PLAY [node01] *************************************************************************************************************************************************************

TASK [Gathering Facts] ****************************************************************************************************************************************************
ok: [192.168.56.100]

TASK [add user] ***********************************************************************************************************************************************************
changed: [192.168.56.100]

PLAY RECAP ****************************************************************************************************************************************************************
192.168.56.100               : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0      

方法二

1.在受管服务器上将monitor加入/etc/sudoers文件,确保monitor用户可以执行sudo su -

[root@node01:/root]$ cat /etc/sudoers | grep monitor
monitor      ALL=(ALL)     ALL      

2.编辑ansible所需的hosts文件信息,将受管的服务器地址192.168.56.100加入hosts文件中。

[node01]
192.168.56.100    sible_become_pass='wwwwww'      

3.在ansible管理服务器/home/monitor使用monitor用户修改ansible.cfg文件​

[privilege_escalation]
become=True
become_method=sudo
become_user=root
#become_ask_pass=false      

4.在ansible管理服务器/home/monitor使用monitor用户编写user.yml文件

[monitor@node02 ~]$ cat user.yml
- hosts: node01 
  remote_user: monitor 
  vars:
    user: test 

  tasks:
    - name: add user
      action: user name={{ user }}  home=/home/{{ user }}
  tags:
    - user      

5.执行命令ansible-playbook​

[monitor@node02 ~]$ ansible-playbook -i hosts user.yml

PLAY [node01] *************************************************************************************************************************************************************

TASK [Gathering Facts] ****************************************************************************************************************************************************
ok: [192.168.56.100]
6.    
TASK [add user] ***********************************************************************************************************************************************************
changed: [192.168.56.100]

PLAY RECAP ****************************************************************************************************************************************************************
192.168.56.100               : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0