将 rpm 发送到多个系统,远程执行 rpm 安装并重复

将 rpm 发送到多个系统,远程执行 rpm 安装并重复

读了很久的读者,第一次发帖。我还不是编剧(目前还不是),但我了解/知道一些基础知识。不是所有基础知识,但知道一些。

我已经进行了很多搜索,但尚未找到我的具体情况。

我正在做的是编写一个脚本,将多个 rpm 文件发送到多个系统,然后远程执行 rpm 安装命令并重复到下一个系统。

我有一个包含系统列表的纯文本文件 (sites.txt)。系统列表在文件中的布局如下:

0123 aa0123

4567 aa4567

8910 aa8910

ETC...

我想用这个列表传递给 SCP/SSH 命令来发送 RPM 文件,然后执行 rpm 安装。但我不太清楚如何让相同的命令重复执行,直到系统列表 (sites.txt) 运行完毕。

为了让您更好地了解我正在做的事情,下面是我目前在脚本中的内容:

for i in cat /tmp/sites.txt | awk '{print $2}' do REG='expr substr $i'

(这有必要吗?)

scp /remote/install/* $i:/remote/install; ssh $i "rpm -U /remote/install/*'

这就是我目前得到的。

由于我对脚本编写不太擅长,因此如能得到任何帮助/建议我将不胜感激。

谢谢!

答案1

从该软件包目录中创建一个 yum repo。通过 http 或 ftp 共享。

在主机上,安装此 yum repo,可能称之为local。仅安装和更新以下软件包:yum --disablerepo='*' --enablerepo=local update '*'

要在多台主机上执行此操作,请使用自动化软件。Ansible 非常擅长通过 ssh 进入一个盒子并并行执行任务,并具有良好的错误处理能力。这将是一个双任务 Ansible 游戏。

相关内容