Выкладываю 1-ю версию скрипта, жду отзывов.
Пока дополнительных модулей не выкладываю - их функциональность слишком узкая - специфика создания пользователей, добавление в группы, реализация добавления на почтовый сервер и т.п. Буду развивать на основе отзывов и потребностей.
Пока из функциональности прилагаю только основной скрипт, позволяющий:
1. Выполнять пинг указанных машин (вообще несвойственная для системы задача, но вдруг пригодится).
2. Выполнять произвольные команды на произвольных машинах. Это основная задача системы.
Установка:
1. Развернуть архив на C:\ (чтобы появился каталог C:\Apache2)
2. Запустить C:\Apache2\install.bat
Система прописывается как служба Apache2mgt, стартует при запуске системы, не оставляет мусора в реестре. Логи выполненных действий складываются в C:\Apache2\logs
Это просто обычный apache+php (донастроенный мной).
Устанавливать на все машины, которыми надо управлять.
Удаление:
1. Запустить C:\Apache2\uninstall.bat
2. Удалить C:\Apache2
Запуск:
1. После установки открыть в браузере
http://localhost:83/ (или с другого компьютера по сети)
2. Для быстрого входа можно использовать
логин: manager
пароль: ns8j7sn1nd
3. В списке выбрать management.php - это главный файл, нажать "выполнить команду"
4. Набрать команды (каждую следующую - с новой строки), и имена (ip) серверов, на которых система установлена, запустить.
Например, для начала можно поставить систему на 1 машину, открыть localhost и выполнить "dir" на localhost (см. пример: C:\Apache2\example.htm)
Настройка:
1. Хотя все экземпляры системы равноправны, это может быть нежелательно с точки зрения безопасности. Для цепочки вызовов самой себя система использует вход с паролем, который передает себе в открытом виде.
Если система выполняет только роль управляемой, можно удалить файл C:\Apache2\htdocs\_auth.inc.php - там хранится логин/пароль и на управляемой системе он не нужен. Также можно удалить C:\Apache2\htdocs\_servers.inc.php - список машин по умолчанию, на которых выполнять скрипт.
2. Рекомендуется создать себе пользователя (или нескольких) для управления этой системой, чтобы не входить под manager - это системная учетная запись этой системы. Команда создания пользователя:
C:\Apache2\bin\htpasswd.exe -b C:\Apache2\htdocs\.htpasswd user_name password
Создать пользователя достаточно на машине, с которой администрировать.
3. Настоятельно рекомендуется сменить пароль для manager (один и тот же на всех управляющих и управляемых машинах):
C:\Apache2\bin\htpasswd.exe -b C:\Apache2\htdocs\.htpasswd manager password
4. По умолчанию, система работает на 83 порту. При желании можно это изменить:
В C:\Apache2\htdocs\_management.inc.php изменить строку: $PORT="83";
И тот же порт выставить в C:\Apache2\conf\httpd.conf
5. Иногда может быть полезно изменить максимальное время выполнения скрипта:
В C:\Apache2\php\php.ini "max_execution_time = 300" - 300 секунд - изменить на то, что нужно.
Конечно, ничто не мешает при изменении этих настроек на всех компах сети воспользоваться самой этой программой
Примеры использования:
1. результат выполнения команды "dir" на машинах "localhost", "localhost" можно посмотреть в C:\Apache2\example.htm
2. возможно, на всех машинах полезно будет выполнить команду:
echo y|cacls c:\apache2 /P администраторы:F /T /C
это оставит доступ к C:\Apache2 в NTFS только админам - конечно, пароли в C:\Apache2\htdocs\.htpasswd зашифрованы, но мало ли что...
3. Создание пользователей:
net user "username" "passwd" /fullname:"Ф И О" /comment:"описание пользователя" /add 2>&1
Обратите внимание на окончание "2>&1". Без этого Вы не увидите в окне ошибок выполнения (stderr). Рекомендуется использовать это для получения информации об ошибках.
4. В состав программы я включил wget. Это маленькая программа для закачки файлов, но с большими возможностями. Наприсер, с помощью нее на каждый компьютер можно загружать произвольные файлы через тот же 83-й порт http, чтобы в дальнейшем выполнять их. Можно даже обновить сами файлы этого скрипта. (Возможно, в дальнейшем напишу модуль для этой цели).
Заключение:
Будте осторожны: проверьте, как команда работает в консоли, прежде чем запускать ее на всех машинах в сети. Убедитесь, что она делает то, что нужно и не попросит нажать какую-нибудь клавишу - это просто приведет к зависанию выполняемой команды на всех машинах.
Жду отзывов, комментариев и предложений.
Тема на форуме:
http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=24150 С уважением, iltmpz
При распространении и доработке системы просьба сохранять ссылку на автора.
Скачать:
http://rapidshare.com/files/78727765/Apache2mgt.rar