我正在运行 ansible 的原始模块使用非 root 用户并想给出一个检查某些条件的命令。例如,我想在删除目录之前检查它是否存在。就像以下命令一样。
[ -d "$DIR" ] && echo "Yes"
现在我想授予非root用户在sudoers文件中运行此命令的权限。
xyzUser ALL = (ALL) NOPASSWD: 'something/that/lets/me/run/that/command'
因此,我想知道我可以在 sudoers 中写入什么以便让我运行此命令和所有其他基于条件的命令。
答案1
例如,我想在删除目录之前检查它是否存在。
- name: Example playbook to make sure a dir is absent
hosts: my_host_group
# Connect with a non-root user
remote_user: my_remote_user
# Use sudo, as you say you need it. Configure it on the relevant host
become: true
vars:
dir_to_remove: /path/to/dir/on/host
tasks:
- name: "remove {{ dir_to_remove }} if exists. Do nothing otherwise"
file:
path: "{{ dir_to_remove }}"
state: absent