iltmpz
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Выкладываю 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 |