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'
posted @ 2025-08-23 22:10  阿峰博客站  阅读(10)  评论(0)    收藏  举报