ansible普通用户执行高权限命令解决办法
在root账户禁止登录的情况下,wsupport账户有sudo权限但是执行的时候需要输入密码,使用变量方式去传递密码,实现非交互式自动输入密码
cat add_user_admin.yaml
---
- hosts: wsupport
vars_files:
- wsupport_passwd.yml
become: yes
tasks:
- name: add_user_admin
user:
name: 'admin'
state: present
password: "{{ '你的新用户密码' | password_hash('sha512') }}"
- name: set permissions
lineinfile:
path: /etc/sudoers
line: 'admin ALL=(ALL) NOPASSWD: ALL'
state: present
insertafter: EOF
cat wsupport_passwd.yml
ansible_become_password: "普通用户密码"
还有另一种办法:
# 在 inventory 文件中配置 sudo 密码,就无需再定义变量的方式了。
[wsupport]
127.0.0.1 ansible_ssh_port=22 ansible_ssh_user=wsupport ansible_ssh_pass='1qaz@WSX' ansible_become_password='1qaz@WSX'