Здравствуй, Инженер!
Эта статья - логическое продолжение моего цикла про управление ЛВС под Linux Debian. Предыдущая статья по ссылке.
Чтоб поддержать канал, прочти, пожалуйста, статью до конца. Это действительно важно для меня. Спасибо.
SSH - первый кит - мы его настроили в прошлый раз. Если кому-нибудь интересно, как настроить аутентификацию по публичным ключам, напиши об этом в комментариях.
PHP - второй кит - в нём мы будем передавать команды на рабочие места.
SHELL - встроенный скриптовый язык Linux. На нём будут выполнены команды на рабочих станциях.
Первое, что нужно сделать - настроить сервер SSH на всех рабочих станциях. На сервере, где будет работать HTTP, нужно настроить SSH клиент.
На каждой станции должен быть сервисный пользователь, который может войти на станцию только с сервера по SSH. Этому пользователю нужно разрешить доступ в размере, необходимом в перспективе для осуществления настроек. Лично у меня, ввиду того, что сеть закрытая, этот пользователь входит в группу sudo.
Применение настроек на станции сводится к исполнению команд:
- scp - для защищенного копирования файлов настроек по ssh;
- rm - для удаления ненужных файлов;
- dpkg - для установки пакетов;
- echo 'content' > /path/file - для записи в файл /path/file содержимого content;
- reboot - для перезагрузки после настроек;
- update-... - для обновления специфических настроек, вроде замкнутой програминой среды;
- и другие
Все команды, кроме первой, выполняются в PHP следующим образом:
shell_exec("ssh service@$host[$i] reboot");
Команда scp внутри себя создаёт подключение ssh, так что отдельного подключения создавать не нужно.
Если кому-то интересно, как автоматически заполнить массив $host[] - пишите об этом в комментариях.
Я дал тебе пищу для размышлений. Можешь разжевать её в комментариях, можешь задать мне вопросы, на которые я смогу ответить в следующей статье. Можешь поставить лайк, и тогда я узнаю, что материал подобного рода востребован👍