读了很久的读者,第一次发帖。我还不是编剧(目前还不是),但我了解/知道一些基础知识。不是所有基础知识,但知道一些。
我已经进行了很多搜索,但尚未找到我的具体情况。
我正在做的是编写一个脚本,将多个 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 游戏。