You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何绕过Ansible本地执行Playbook时的sudo密码错误?

解决Ansible挂载NFS时的sudo密码错误问题

我在控制节点用低权限的ansible用户运行Ansible Playbook,需要挂载NFS共享,代码如下:

- hosts: localhost
  connection: local
  vars:
    FLSYSTEM: 'abc.xyz.com:/folder1'
    MOUNTPOINT: '/folder1'
  become: yes
  gather_facts: no
  tasks:
  - name: mount share
    mount:
      src: '{{ FLSYSTEM }}'
      path: '{{ MOUNTPOINT }}'
      fstype: nfs
      opts: rw,sync
      state: mounted

运行后遇到错误:

fatal: [localhost]: FAILED! => {
    "msg": "error occurred on host : sudo password is incorrect"

给你几个可行的解决办法:

  • 配置免sudo权限(推荐)
    让低权限用户执行mount和umount命令时无需sudo密码:

    1. 执行sudo visudo编辑sudoers文件(别直接用vi编辑,避免语法错误锁死sudo)
    2. 在文件末尾添加一行(把ansible_user换成你的实际低权限用户名):
      ansible_user ALL=(ALL) NOPASSWD: /bin/mount, /bin/umount
      
    3. 保存退出后,该用户再执行挂载操作就不会要求输入sudo密码了
  • 运行Playbook时手动输入密码
    执行Playbook时加上--ask-become-pass参数,运行时会提示你输入sudo密码:

    ansible-playbook your_playbook.yml --ask-become-pass
    
  • 通过环境变量传递sudo密码
    先设置环境变量存储sudo密码,再运行Playbook:

    export ANSIBLE_BECOME_PASS='你的sudo密码'
    ansible-playbook your_playbook.yml
    

内容的提问来源于stack exchange,提问作者AashkaTe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 01:24:26