在我的环境中大约有 1000 台生产服务器。所有服务器上都禁用直接 root 登录。有一个用户“abc”具有 sudo 访问权限。我们使用“abc”登录每台计算机,然后sudo su -
获得 root 访问权限。
请注意,我在 Ubuntu 计算机上运行此脚本并连接到 RHEL 计算机。
需要知道每个远程服务器 IP 的主机名和操作系统版本。
所以我制作了一个脚本,它将与远程系统连接并执行命令并将输出保存在本地文件中。
我设法创建的脚本如下:
for i in `cat test1`
do
{
echo "***************************$i***************************************"
sshpass -p 'password' ssh abc@ipaddress “/sbin/ifconfig >> /home/ankush/output.txt”
}
done
它连接到test1
文件中存在的所有计算机 IP 地址并执行,但不执行ifconfig
远程系统上的命令。
执行时报错如下:
***************************ip address***************************************
bash: “/sbin/ifconfig: No such file or directory
答案1
答案2
安西布尔可以为您做到这些(甚至更多):
ansible remotehost -m setup