用ansible帮我写一个批量检查是否有sudo权限的命令
时间: 2023-03-29 19:00:49 浏览: 238
可以使用以下ansible playbook来批量检查是否有sudo权限的命令:
```
- name: Check sudo access
hosts: all
become: true
tasks:
- name: Check sudo access
command: sudo -n true
register: result
ignore_errors: true
- name: Print result
debug:
msg: "Sudo access {{ 'granted' if result.rc == else 'denied' }}"
```
这个playbook会在所有主机上执行一个命令,以检查当前用户是否有sudo权限。如果有sudo权限,则命令将成功执行并返回退出代码。如果没有sudo权限,则命令将失败并返回非零退出代码。最后,playbook会打印结果,以指示sudo访问是否被授予。
相关问题
ansible 批量检查是否有sudo权限
可以回答这个问题。使用ansible的"shell"模块,执行"sudo -v"命令,如果返回值为,则表示有sudo权限,否则没有。可以使用"register"关键字将结果保存到变量中,然后使用"debug"模块输出结果。具体命令如下:
- name: Check sudo privilege
hosts: all
tasks:
- name: Check sudo privilege
shell: sudo -v
register: result
ignore_errors: true
- name: Print result
debug:
var: result.stdout_lines
写一个批量修改服务器密码的ansible命令
以下是一个批量修改服务器密码的ansible命令:
```bash
ansible all -i inventory.ini -m user -a "name=<username> password=<new_password> update_password=always" --become-user=<sudo_user> --become
```
其中,`inventory.ini` 是你的主机清单文件,`<username>` 是要更改密码的用户名,`<new_password>` 是新密码,`<sudo_user>` 是具有sudo权限的用户。这个命令将使用Ansible的`user`模块在所有主机上更改指定用户的密码,并使用`become`选项以sudo权限运行。请确保你已经在目标主机上设置了SSH密钥认证,以便使用Ansible进行无密码访问。
阅读全文