0

我正在尝试使用“lineinfile”通过临时命令作为 ROOT 通过 Ansible 服务器向 Ansible 节点添加权限:

ansible -i rec-apache.inv -m lineinfile -a "path=/etc/sudoers \
line ='ansible-node1 ALL=(ALL:ALL) NO PASSWD:ALL'" --become-method=su --become -K all

我收到以下错误

ERROR! this task 'lineinfile' has extra params, which is only allowed in the following modules:
shell, win_shell, include_vars, add_host, raw, include_role, meta, set_fact, include, 
import_tasks, script, import_role, include_tasks, group_by, command, win_command

我已经完成了密钥交换,一切顺利。仅当我在服务器端使用 root 用户时才会出现此问题。我知道我可以使用 playbook 来做到这一点,但我对 ad-hoc 命令很感兴趣。谢谢 !

4

1 回答 1

0

行后的空格line ='...'可能会导致 Ansible 将='...'其视为参数,这是不受支持的。尝试将空格删除为:line='ansible-node1 ALL=(ALL:ALL) NO PASSWD:ALL'

于 2020-08-09T05:48:20.637 回答