今天又一个要求,想通过sudo的普通用户执行ansible的命令,而不是通过root用户去执行系统管理的命令。步骤如下
一、先修改ansible.cfg文件,启用sudo,指定sudo的用户为lisi
forks = 5
#poll_interval = 15
sudo_user = lisi
#ask_sudo_pass = True
#ask_pass = True
二、在被管的host上启用sudo,添加sudo的用户
visudo
三、修改ansible端的hosts文件,如下
[test]
192.168.52.134 ansible_ssh_user=lisi ansible_ssh_pass='123' ansible_sudo_pass='123'
可以指定ssh远程连接的密码,和客户端sudo时候的密码
四、最后远程执行命令
ansible test -m command -a "df -hT" -u lisi --sudo -k
-u 执行远程的用户,与sudo用户一致 --sudo 表示启用sudo -k 表示ssh连接的时候输入密码
192.168.52.134 | SUCCESS | rc=0 >>
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 17G 4.1G 13G 25% /
devtmpfs devtmpfs 475M 0 475M 0% /dev
tmpfs tmpfs 492M 0 492M 0% /dev/shm
tmpfs tmpfs 492M 8.1M 483M 2% /run