Однообразные действия, которые я выполняю более 2-х раз я всячески пытаюсь автоматизировать. Поэтому появилась необходимость организовать процесс добавления новых серверов под управление домена на базе FreeIPA. Используя ансибл-роли мы можем оперировать только заранее известными нам серверами, но мы заранее не знаем, какой ip и hostname получит сервер. Для решения этой задачи я набросал bash скрипт, который будет запускаться раз в сутки с сервера Касперского и “затаскивать” машину в домен.
Сам скрипт здесь не представлен, но я заметил отсутствие информации о запуске скриптов с Каспера. Этот процесс я опишу здесь.
Шаг 1. Подготовка файла скрипта
- Скрипт должен быть написан в оболочке Linux, если вы пишите в Notepad ++, то Windows может добавить лишние пробелы (которые не видит даже редактор vim).
- Если всё же написано в винде, то заходим в Notepad ++ - Вид отображение символов - Отображать все символы
- Найти и заменить все пробелы, обозначаются как /r на пустоту
- Если скрипт копируется с Linux машины заранее дайте ему право на выполнение:
|
|
И скопируйте на сервер Касперского через WinSCP с соответствующими правами, или командой scp (Если установлен OpenSSH на Windows)
Шаг 2. Создание инсталяционного пакета
Заходим на сервер Касперского - Инсталяционные пакеты - Создать инсталяционный пакет
Для указанного исполняемого файла
Выбираем наш скрипт, который мы скопировали на сервер Касперского
После чего установится пакет, который будет размещен в общей папке сервера
Параметры отсутствуют. Если указать их, они добавятся в конце команды по запуску скрипта на конечном сервере.
Например, если в поле вписать sudo -s, то выполнение будет происходит так: /bin/sh … ‘add_freeipa.sh’ sudo -s. То есть в заполнении этого поля нет необходимости, так как параметр не повлияет на скрипт.
Шаг 3. Создание задачи установки
Задачу можно создать как на группу устройств (без наследования), так и на отдельные устройства, с параметрами запуска “По расписанию” и указать время запуска задания.
Нажимаем на созданном нами исталяционном пакете “Установить программу”
Выбираем на группу и выбираем устройства, на которые будет распространяться задача
Обязательно отметьте галкой пункт “Не устанавливать программу, если она уже установлена”
- В случае, если в логах Вы увидите “Permission Denied”, то укажите креды для пользователя имеющего root авторизацию. У меня всё сработало без него.
Наблюдаем за выполнением и читаем конечный лог задачи
- Если скрипт будет выдавать ошибку она будет отображена здесь, но статус задачи всё равно будет “Завершена успешно”, поэтому чтобы отлаживать скрипт используйте “Результаты выполнения задания”
В моём случае задача выполнилась успешно, оповещение WARNING можно не брать во внимание.