为小型网络用户安装 Yum

为小型网络用户安装 Yum

我们有一个由 15 名用户组成的小型网络。我需要使用 yum 在网络上的所有计算机上安装一些新库。我已经有一个 csh 脚本,它允许我 rsh 到系统上的所有计算机上,这样我就可以手动切换到 root 并为每个 rsh 安装所需的依赖项。有没有更有效的方法来做到这一点?

我尝试使用以下 csh 脚本执行此操作。测试期间我暂时继续使用 rsh。但是,当我 rsh 到另一个主机文件时,脚本就死机了。我做错了什么?

if ($1 == "")then
    echo -n "Please enter a package to install\n"
    set package=$<
else set package = $#argv
endif

set numlines = `cat $NM_HOME/sh_local/nc_network2.txt | grep -v "^#" | fgrep "%" |  wc -l`
while ($numlines>0)
    set line = `cat $NM_HOME/sh_local/nc_network2.txt | grep -v "^#" | fgrep "%" | tail -$numlines | head -1`
    set host2 = `echo $line | cut -f 1 -d %`
    set where = `echo $line | cut -f 2 -d %`
    if ($host2 == $this_machine) then 
    echo "This is $host2....skipping rsh to this machine"
    echo ""
    goto yum
    endif
    echo ""
    echo "logging into $host2 $where"
    echo ""
    sleep 1
    rsh $host2
    yum:
    echo ""
    echo "Preparing to install $package on $host2"
    sudo yum -y install $package
    if ($host2 == $this_machine) then 
    goto decrement
    else
    logout
    goto decrement
    endif

    decrement:
    @ numlines--

end

答案1

  1. 使用带有公钥认证的 ssh 来避免输入密码并保持某种安全性。
  2. 直接以 root 身份登录或者运行sudo yum
  3. 确保 yum 以非交互方式运行,yum -y以便安装可以无人值守运行。
  4. 在文件中列出主机列表,并使用 GNU 在所有主机上并行运行安装parallel(gnu.org)或者xargs
  5. 如果你喜欢自动化,可以研究一下自动化管理工具,比如puppet(维基百科)

相关内容