Автор Тема: Как одновременно выполнить команду на нескольких копьютерах? [решено]  (Прочитано 5474 раз)

oleg-it

  • Гость
Что-то не понятно..
А как ученический компьютер пустит к себе без пароля?
Все-равно надо прописывать ключи вручную?

Оффлайн rotkart

  • Участник
  • *
  • Сообщений: 661
Что-то не понятно..
А как ученический компьютер пустит к себе без пароля?
Все-равно надо прописывать ключи вручную?
К сожалению да. Наиболее легкий способ, как я уже понимаю - сначала по ssh скопировать свой ключ к пользователю, который входит в группу wheel, с помощью ssh-copy-id, потом зайти под ним и переместить этот ключ руту при помощи su.
Хотите, опишу все по шагам?
Научить нельзя, научиться можно.

oleg-it

  • Гость
...
К сожалению да. Наиболее легкий способ, как я уже понимаю - сначала по ssh скопировать свой ключ к пользователю, который входит в группу wheel, с помощью ssh-copy-id, потом зайти под ним и переместить этот ключ руту при помощи su.
Хотите, опишу все по шагам?
Очень хочу :)
p.s. вчера уже начал пробовать, по одной из инструкций на сайте, но не вышло.
потом вспомнил про книжку Курячего, давно читал, там где-то про ключи есть..
в italc, наверное, поэтому компьютеры не выключает, просто происходит "смена пользователя".
а так по скрипту щелкнул, и пошел домой :)

Оффлайн rotkart

  • Участник
  • *
  • Сообщений: 661
Тогда свожу в один пост все, что прочитал в различных источниках (и сделал у себя).

На машине учителя:
1. Генерируем новый ключ, имя моего пользователя - teacher.
ssh-keygen -t dsa2. Всем моим ученическим компьютерам я "прибил" айпишники к MAC-адресам в настройках DHCP-сервера - 192.168.101.101...112 и, при установке, завел административного пользователя teacher, он по умолчанию в группе wheel.
for i in $(seq 101 112); do ssh-copy-id -i /home/teacher/.ssh/id_dsa teacher@192.168.101.$i; doneВводим 12 раз пароль пользователя teacher на ученических компах. После этого шага команды от пользователя teacher уже выполняются с авторизацией по ключу.
3. Заходим на ученический компьютер:
ssh-add; ssh 192.168.101.101Копируем переданный ранее ключ:
su -
mkdir /root/.ssh
cp /home/teacher/.ssh/authorized_keys2 /root/.ssh/
chmod 600 /root/.ssh/authorized_keys2
chown root:root /root/.ssh/authorized_keys2
exit
4. Повторяем пункт 3 еще 11 раз или сколько компьютеров в классе  осталось ;)

Все готово! Можно пользоваться односторочниками типа:
ssh-add; for i in $(seq 101 112); do nohup ssh root@192.168.101.$i "shutdown -h now"; doneВ кавычках допустимы почти все команды с параметрами, доступные администратору :)

P.S.
Сейчас, пока вспоминал, писал и гуглил, наткнулся на достаточно свежий перевод статьи на эту тему на IBM Developers, там хороший пример скрипта, который хочу взять на вооружение вместо однострочных конструкций.
Научить нельзя, научиться можно.

Оффлайн asterix81

  • Участник
  • *
  • Сообщений: 150

P.S.
Сейчас, пока вспоминал, писал и гуглил, наткнулся на достаточно свежий перевод статьи на эту тему на IBM Developers, там хороший пример скрипта, который хочу взять на вооружение вместо однострочных конструкций.


Можно спросить? Что нарыли? я пользуюсь Вашими советами, оччччень здорово!

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Есть способ именно одновременного выполнения команд?
А что же никто, с тех давних пор, не посоветовал clusterssh ?..

Оффлайн rotkart

  • Участник
  • *
  • Сообщений: 661
А что же никто, с тех давних пор, не посоветовал clusterssh ?..
Не, не знал, спасибо!
http://packages.altlinux.org/en/Sisyphus/srpms/pdsh сейчас пользую, тоже здесь на форуме насоветовали.
А так для инструкций выше никаких доп.пакетов устанавливать не надо - как говорят есть искаропки!
Научить нельзя, научиться можно.

Оффлайн rotkart

  • Участник
  • *
  • Сообщений: 661
Можно спросить? Что нарыли? я пользуюсь Вашими советами, оччччень здорово!
http://www.ibm.com/developerworks/ru/library/au-satdistadmin/ - листинги 8 и дальше. Как раз после них и приходишь к использованию инструментов типа pdsh.
Могу завтра с работы сбросить пару примеров использования.
Научить нельзя, научиться можно.

Оффлайн asterix81

  • Участник
  • *
  • Сообщений: 150
Можно спросить? Что нарыли? я пользуюсь Вашими советами, оччччень здорово!
http://www.ibm.com/developerworks/ru/library/au-satdistadmin/ - листинги 8 и дальше. Как раз после них и приходишь к использованию инструментов типа pdsh.
Могу завтра с работы сбросить пару примеров использования.
Несомненно будет полезно. Спасибо.

Оффлайн rotkart

  • Участник
  • *
  • Сообщений: 661
Несомненно будет полезно. Спасибо.
Да не за что, рад поделиться.

Копирование директории с практикумами по ученическим компьютерам:
ssh-add; for i in `seq 101 113`; do echo $i; scp -r OOo_CALC_Практикумы/ user@192.168.103.$i:/home/user/Документы/; done
Монтирование шифрованной директории с "конфеткой":
ssh-add; for i in `seq 101 113`; do echo $i; echo ioNu7EgeiNohth2eip | ssh user@192.168.103.$i "encfs -o nonempty ~/.encfs ~/ioquake3"; done
Здесь я не использую nohup - просто по очереди выполняются 13 команд, это достаточно быстро.

Для одновременного выполнения я сейчас применяю утилиту pdsh:
[tsel@cab303 ~]$ cat /home/tsel/bin/class_clear.sh
#!/bin/bash
#
# Скрипт для восстановления исходного состояния рабочего стола
# Очистка браузеров после работы с интернет и т.д.
#
ssh-add
pdsh -w root@192.168.103.[101-113] "rm -rf /home/user/.opera"
pdsh -w root@192.168.103.[101-113] "rm -rf /home/user/.config/chromium"
pdsh -w root@192.168.103.[101-113] "rm -rf /home/user/.mozilla"
pdsh -w root@192.168.103.[101-113] "rm -rf /home/user/.kde*"
#pdsh -w root@192.168.103.[101-113] "rm -rf /home/user/fpc/fp*"
pdsh -w root@192.168.103.[101-113] "rm -rf /home/user/config/libreoffice"

Я ещё не очень хорошо разобрался с pdsh, так что использую её минимально.
А тут ещё про clusterssh подсказали чуть выше - надо почитать.
Научить нельзя, научиться можно.