Автор Тема: Скрипты для управления большим количеством компьютеров  (Прочитано 2271 раз)

Оффлайн SuperVisor

  • Завсегдатай
  • *
  • Сообщений: 778
  • разочарован в KDE
Стопицот раз уже обсасывали тему АД/ЛДАП/САМБА/Групповый политик, но никто так и не поделился примером скрипта, который бы выполнял требуемые действия, скажем, в целом компьютерном классе.
Я сейчас занимаюсь допиливанием системы, чтобы клонировать её на другие компьютеры в классе - ставлю образовательный софт, настраиваю оформление и т.д.
В качестве рабочего окружения выбрал IceWM - настраивается проще некуда и дети загадить его не смогут :) Меню фиксированное - только программы, необходимые для учебы, чтобы не отвлекались дети и быстрее находили нужную программу. Но, допустим, понадобилось установить во всем классе новую программу, например, Lazarus. Это нужно будет пробежать на каждую машину, поставить его, добавить в меню. Долго и нудно.

Собственно вопрос: приведите пример скрипта, который бы копировал с сервера (по ssh или через ftp/http) подготовленный мной скрипт и выполнял его, например, при каждой загрузке?

Как я это вижу:
1) Запускается скрипт
2) Скачивает с сервера файл, пусть он будет называться, politics, примерно следующего содержания:
Цитировать
proxy_settings<tab>hostname1,hostname2,comp1,host2
remove_all_tmp<tab>host1,comp2
icewm_for_pupils<tab>host1,host2,host3
и т.д.
где первое поле - имя политики, второе - имена компьютеров, к которым эти политики применять
3) Скрипт определяет имя компьютера, на котором он запущен, например, командой hostname (пусть это будет host2)
4) ищет в файле politics все строки, в которых присутствует значение выполненной ранее команды hostname (две строки)
5) последовательно скачивает с сервера архивы (proxy_settings, icewm_for_pupils), в которых хранятся скрипты и другие файлы(меню, тема, значки, обои и т.д.), распаковывает и запускает скрипт из архива (ну пусть он будет называться start.sh).
6. Start.sh отрабатывает, отправляет на сервер файл $date-$hostname-$arh_name.log с результатами выполнения.
Занавес :)

Естественно, всё это можно усложнить/дописать, но лично меня устроил бы такой урезанный и простенький вариант групповых политик.
« Последнее редактирование: 29.09.2010 22:08:46 от SuperVisor »

Оффлайн dk

  • alt linux team
  • ***
  • Сообщений: 989
    • Email
Так вы хотите, чтобы кто-то реализовал ваше представление о том, как должна быть устроена система, или рассказал, как он администрирует целиком компьютерные классы?

Я это делаю так. Настраиваю все компьютеры так, чтобы можно было делать на машины учащихся ssh пользователю root без авторизации (ключики раскладываю). А дальше скрипты уже и не нужны. Например, если хочется установить на все компьютеры Lazarus, то все компьютеры включаются и делается команда:

for ((i=2;i<=16;++i)) ; do ssh 192.168.0.$i "apt-get install lazarus" & done

Здесь предполагается, что компьютеры в классе имеют ip-адреса 192.168.0.2-192.168.0.16.
Также у меня на локальном ftp-сервере лежит полное зеркало репозитория и на компьютерах учащихся apt настроен на использование этого зеркала.

Ну если хочется сделать из этого скрипт, то это вовсе несложно.

« Последнее редактирование: 29.09.2010 23:02:29 от dk »

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 232
http://www.calculate-linux.ru/main/ru/calculate2 - оттуда можно кое-что взять для ваших нужд, но проще развернуть сеть целиком на Calculate.

Когда свершится  http://gentoo.ru/node/20736 можно будет послушать доклад разработчиков.
« Последнее редактирование: 29.09.2010 23:39:18 от yaleks »

Оффлайн HAW

  • Завсегдатай
  • *
  • Сообщений: 1 247
    • Email
Собственно вопрос: приведите пример скрипта, который бы копировал с сервера (по ssh или через ftp/http) подготовленный мной скрипт и выполнял его, например, при каждой загрузке?

rsync

Оффлайн valobasoff

  • Завсегдатай
  • *
  • Сообщений: 399
Настраиваю все компьютеры так, чтобы можно было делать на машины учащихся ssh пользователю root без авторизации (ключики раскладываю).
А разве авторизация рутом разрешена через ssh ?

Оффлайн Const

  • Глобальный модератор
  • *****
  • Сообщений: 2 653
  • Даже у плохого модератора есть свои плюсы…
Настраиваю все компьютеры так, чтобы можно было делать на машины учащихся ssh пользователю root без авторизации (ключики раскладываю).
А разве авторизация рутом разрешена через ssh ?
По умолчанию, — только по ключу.
А так: как настроите, — так и будет.

Оффлайн valobasoff

  • Завсегдатай
  • *
  • Сообщений: 399
По умолчанию, — только по ключу.
А так: как настроите, — так и будет.
Спасибо! получилось. :)
а можно сделать чтобы результаты работы
Цитировать
for ((i=2;i<=16;++i)) ; do ssh 192.168.0.$i "apt-get install lazarus" & done
выводились на отдельные консоли для каждого компьютера, или например по очереди?
« Последнее редактирование: 11.11.2011 21:36:18 от valobasoff »

Оффлайн akarp

  • Завсегдатай
  • *
  • Сообщений: 226
    • Email
А чем вас не устраивает cluster ssh?
Цитировать
Если вам понадобится выполнить одну и ту же команду сразу на нескольких серверах, вы можете последовательно подключиться к каждому по SSH и ввести эту команду. Или же вы можете сохранить кучу своего драгоценного времени, воспользовавшись утилитой вроде ClusterSSH.