У нас небольшая сеть из 15 пользователей. Мне нужно установить несколько новых библиотек, используя yum, на все компьютеры в сети. У меня уже есть сценарий csh, который позволяет мне rsh на всех компьютерах в системе, чтобы я мог вручную переключиться на root и установить необходимые зависимости для каждого rsh. Есть ли более эффективные способы сделать это?

Я попытался сделать это, используя следующий сценарий csh. Пока я продолжал использовать 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

2
  1. Используйте ssh с аутентификацией с открытым ключом, чтобы избежать ввода паролей и для обеспечения безопасности.
  2. Войдите в систему как root или запустите sudo yum .
  3. Убедитесь, что yum неинтерактивно работает как yum -y чтобы установка могла выполняться без присмотра.
  4. Составьте список хостов в файле и запустите установку параллельно на всех хостах, используя GNU parallel (gnu.org) или xargs .
  5. Если вам понравилась автоматизация, посмотрите на инструменты для автоматизированного администрирования, такие как puppet (wikipedia) .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .