我必须在 40 台通过 LAN 连接的实验室机器上安装 java 1.7 等标准包。
我知道我可以简单地编写一个 shell 脚本来在每个系统的用户空间中安装一些东西,基本上scp
对每个系统执行操作并将它们提取到用户空间,但是如何将软件包从一个系统安装到另一个需要 root 访问权限的系统系统?
是的,我对每个系统都有根访问权限,但我不知道如何通过从单个系统进行控制来自动化网络安装。
答案1
首先,您需要使用 ssh 密钥自动登录,然后编写一个脚本来循环运行安装命令您还需要使用一个能够登录到所有其他系统的系统
首先cd
到你的主目录创建ssh密钥
cd
mkdir -p .ssh
cd .ssh
创建密钥并将其复制到所有其他系统
ssh-keygen
将公钥复制到远程机器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@remotesys1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@remotesys2
...
ssh-copy-id -i ~/.ssh/id_rsa.pub root@remotesys40
如果您没有remotesys1的DNS,那么您可以使用IP
创建一个文件,其中包含所有系统名称或IPsystems.txt
remotesys1
remotesys2
..
remotesys40
运行以下脚本并将“./install.sh”更改为您安装的命令
for system in $(cat systems.txt ) ; do echo $system ; ssh $system "./install.sh" ; done