Упрощение управления компьютерным классом с помощью SSH

()

Сразу извинюсь за столь неудачное название. Ничего другого на ум не пришло (к сожалению). Да название пожалуй и не главное. Главное что я постараюсь написать дальше:)

А дальше я хочу рассказать как можно упростить установку/удаление программ и выполнение других административных задач одновременно на всех компьютерах в классе с помощью SSH.

Буквально на днях мне нужно было в одном интернет салоне установить некоторое Windows-приложение (разумеется под wine) сразу на всех компьютерах. Тут поневоле задумаешься об оптимизации процесса. Процесс был оптимизирован на столько, насколько это вообще возможно.

Первым делом для приложения был создан дистрибутив в виде shell-скрипта. Способ создания такого дистрибутива я описывал здесь. Потом встал вопрос "раскидывания" дистрибутива по машинам и его запуска.

На всех машинах стояла Kubuntu 7.10. Клиентские машины в зале имели адреса из диапазона 192.168.0.201-192.168.0.232. Касса (она же сервер) имела IP 192.168.0.131 (хотя в данный момент здесь это не важно).

Первым делом нужно было настроить авторизацию в SSH с помощью DSA-ключей. Как это сделать можно прочитать хотя бы здесь, однако для оптимизации этого процесса был написан следующий скрипт (слава богу на всех компьютерах в салоне пара логин/пароль для клиентов одинакова):

#!/bin/sh

echo ===================================
echo ==      Generating DSA-key       ==
echo ===================================
ssh-keygen -t dsa


for host in `seq 201 232` ; do
	echo ===================================
	echo == Entering to 192.168.0.${host}     ==
	echo ===================================
	ssh-copy-id -i ~/.ssh/id_dsa.pub user@192.168.0.${host}
done


echo ===================================
echo ==      Installing DSA-key       ==
echo ===================================
ssh-add

Пароль я тупо скопировал в буфер обмена и для его ввода тупо нажимал Shift+Ins:)

Далее переходим к копированию файлов на удалённые машины. Тут нам понадобится команда scp:

#!/bin/sh


for host in `seq 201 232` ; do
	echo ========================================
	echo == Installing on to 192.168.0.${host}     ==
	echo ========================================
	scp install_prog.sh user@192.168.0.${host}:'~'
	ssh user@192.168.0.${host} 'chmod +x ~/install_prog.sh'
	ssh user@192.168.0.${host} '~/install_prog.sh'
done


Всё! Работа закончена и можно идти домой:) Надеюсь что эта информация была полезной, хотя и не могу этого гарантировать.

Ключевые слова: ssh, scp, ssh-keygen, ssh-add, dsa, key, seq.

Подписаться на обновления: RSS-лента Канал в TamTam Telegram канал Канал в ICQ

Комментарии:

mj 2008-04-13 23:10:37 (#)

Я иногда открываю несколько сессий в konsole, ставлю на одной из них опцию "посылать ввод всем сессиям" и работаю :)

Но это когда машин немного, а так - да, подобных скриптов у меня масса..

MooSE 2008-04-14 00:17:28 (#)

а я использую yakuake :)

и просто хочется всё как можно быстрее сделать, потому и задумываешься о таких вот скриптах:)

MooSE 2008-04-15 18:41:56 (#)

во второй скрипт вкрадывалась ошибка. я только что заметил и подправил... приношу свои извинения...
Новый комментарий

Жирный текстКурсивный текстПодчёркнутый текстЗачёркнутый текстПрограммный кодСсылкаИзображение




© 2006-2024 Вадим Калинников aka MooSE
Политика конфиденциальности