====== Автоматизация IT Omnishell ======
{{indexmenu_n>16}}
[[:ru:documentation:start|Вернуться в оглавление Документации Pandora FMS]]
===== Введение в Omnishell =====
{{:wiki:icono-modulo-enterprise.png |Versión Enterprise.}}Версия NG 741 или выше.
**Omnishell** - это функция Pandora FMS Enterprise, используемая для оркестрации/автоматизации ИТ. Это инструмент, полностью встроенный в консоль и агентов PFMS , который позволяет определять команды или блоки команд и выбирать цели для их выполнения. Вы можете узнать больше из обучающего видеоролика «[[https://www.youtube.com/watch?v=K3KCssw1wXQ|Автоматизация IT в Pandora FMS: Omnishell]]».
{{ :wiki:omnishell1.png?800 }}
Omnishell основана на связи между различными компонентами Pandora FMS посредством [[:en:documentation:08_technical_reference:09_tentacle|Tentacle]], чтобы безопасным образом координировать выполнение и ответы команд, которые вы хотите запрограммировать.
Вы должны установить в консоли Pandora FMS зависимость **php-yaml**, а в программных агентах GNU/Linux - зависимость **perl-YAML-Tiny**.
==== Дополнительные конфигурации Tentacle Server ====
Только для версии NG 742 или более ранних версий.
* **Tentacle Server** требует изменения конфигурации, чтобы иметь возможность обращаться к файлам с расширением ''.rcmd''.
* Эти файлы содержат определения команд, каждую из которых [[:ru:documentation:02_installation:05_configuration_agents|программный агент]] скачивает и оценивает.
* Определение фильтра файлов Tentacle Server должно быть обновлено:
* Модификация файла ''/etc/tentacle/tentacle_server.conf'' :
# Filters (regexp:dir,regexp:dir...)
filters .*\.conf:conf;.*\.md5:md5;.*\.zip:collections;.*\.lock:trans;.*\.rcmd:commands
* Копия файла ''tentacle_server.conf.new'', который распространяется при установке Pandora FMS Server.
* Файлы ''.rcmd'' публикуются в новом каталоге:
/var/spool/pandora/data_in/commands
* Эта папка должна иметь права доступа для пользователей, которые администрируют сервер Pandora FMS и Apache, выполняющий консоль:
chown pandora:apache -R /var/spool/pandora/data_in/commands
chmod g+s /var/spool/pandora/data_in/commands
* Примечание: Используется //хэш//, основанный на определенных параметрах определения команды.
* Вы должны обеспечить установку протокола Tentacle, на [[:en:documentation:08_technical_reference:09_tentacle#documentation|GNU/Linux®]] или на [[:en:documentation:08_technical_reference:09_tentacle|MS Windows®]], в зависимости от ситуации.
==== Функционирование ====
Задача Omnishell определяется тремя элементами:
**Предусловие**
С помощью одной или нескольких команд, при последовательном выполнении каждой из которых все они должны быть успешными (результат ''errorlevel 0'' ).
**Команды**
При выполнении целевого программного агента в последовательном списке.
**Постусловие**
С помощью одной или нескольких команд, при последовательном выполнении каждой из которых все они должны быть успешными (результат ''errorlevel 0'' ).
Если какая-либо из команд, определенных в Предусловии, Командах или Постусловии, переходит в интерактивный режим, блокируя поток выполнения, **задание прерывается;**. Программный агент сам уничтожает процесс по истечении //тайм-аута//, настроенного для задания.
=== Пример в GNU Linux ===
Настройка автозапуска службы **HTTPD** на системах CentOS 7 в массовом порядке.
* **Каково предусловие? **: Проверьте, есть ли служба в списке установленных, если нет, установите ее.
[ `rpm -qa | grep -i httpd | wc -l` = 0 ] && yum install -y httpd
В этой строке с помощью команды **rpm** приводится список установленного программного обеспечения и подсчитывается количество упоминаний ключевого слова //httpd//. Если равно нулю, он установится.
* **В чем заключается основная задача?**: Запуск и настройка автозапуска службы HTTPD
systemctl restart httpd
systemctl enable httpd.service
Первая строка запускает службу на удаленной машине. Следующая строка настраивает систему на загрузку при каждой перезагрузке удаленного сервера.
* **Как подтвердить основную задачу?** : Найти с помощью **netstat** соединений сети, которые являются **httpd** и прослушивают какой-либо порт. Если есть один или несколько, условие возвращает true.
[ `netstat -lptn | grep httpd | grep LISTEN | wc -l` -gt 0 ]
После проверки кода, который будет выполняться программными агентами, перейдите к созданию команды в **Omnishell**:
{{ :wiki:omnishell2.png }}
После создания команды необходимо назначить необходимых агентов.
{{ :wiki:omnishell3.png }}
Прогресс выполнения команды показан на следующем изображении:
{{ :wiki:omnishell4.png }}
Так выглядит предполагаемое время ожидания выполнения команды:
{{ :wiki:omnishell5.png }}
Так будет выглядеть массовое выполнение команды:
{{ :wiki:omnishell7.png }}
Нажмите на поле, чтобы открыть модальную форму с дополнительной информацией:
{{ :wiki:omnishell6.png }}
Вы можете узнать больше из обучающего видеоролика «[[https://www.youtube.com/watch?v=4huNoV5XWM8&t=37|Что нового в версии 741 Pandora FMS]]».
=== Пример в MS Windows ===
Для данной среды Omnishell все еще находится на стадии тестирования, поэтому некоторые ее функции могут быть изменены или недоступны. Мы приносим свои извинения за неудобства, мы работаем над устранием этого недочета.
Что касается процесса настройки в консоли Pandora FMS, вам следует повторить те же шаги, которые были выполнены в [[:ru:documentation:04_using:16_omnishell#пример_в_gnu_linux|в предыдущем примере с GNU/Linux]] **, лишь изменив код при выполнении настройки**.
Для упрощения данного примера используются только предусловие и основная задача соответственно:
powershell.exe -command "Start-Sleep -Seconds 1"
powershell.exe -command "$mode = Get-Executionpolicy ; if ( $mode -like "restricted" ) {Write-Error -Message "0"}"
PowerShell - это новая //[[:es:documentation:01_understanding:03_glossary#shell_o_lc3adnea_de_comando|оболочка ]]// Windows, разработанная специально для системных администраторов. Она включает в себя интерактивный символ системы и среду сценариев, которые могут использоваться независимо или вместе. Она поставляется в комплекте с этой операционной системой, хотя вы можете установить PowerShell Core из ее репозитория [[https://github.com/PowerShell/PowerShell/tree/master/docs/learning-powershell|GitHub]], чтобы получить последнюю обновленную версию.. Вы можете получить интересную информацию о PowerShell в [[https://pandorafms.com/blog/powershell-101/|блоге Pandora FMS]].
Предусловие проверяет, что PowerShell установлен и может быть использован, в противном случае будет возвращена ошибка и следующий шаг не сможет быть выполнен.
В основной задаче исследуется возможность выполнения //скриптов//, написанных в PowerShell. Если выполняется без ошибок, то на этапе тестирования можно будет добавить код, чтобы использовать его для выполнения более длительных и сложных задач. Для получения дополнительной информации, пожалуйста, обратитесь к документации о том, [[:en:faq:start#how_can_i_execute_powershell_scripts_as_a_module|как запускать скрипты в модуле]] o [[https://pandorafms.com/library/powershell-module-template/|как использовать шаблон для создания модуля с помощью PowerShell]].
Во время установки программного агента необходимо отметить опцию **Enable remote config**. Если у вас уже установлен такой агент, вы должны изменить файл ''%PROGRAMFILES%\pandora_agent\pandora_agent.conf'' с правами администратора и добавить (или изменить) следующую строку: ''remote_config 1''. В группе программы Pandora FMS стартового меню есть прямой доступ к сценарию ''%PROGRAMFILES%% Pandora_agent_scripts edit_config_file.bat'' для более быстрого и удобного доступа.
{{ :wiki:agente_software_746_windows_7_32_bits_paso_6.png?560 }}
==== Примечания ====
* Агент выполняет каждую команду в каждом блоке.
* Если оценка каждой команды не равна 0 (''error_level !=0''), команда не будет оценена и завершится неудачей.
* Агент принимает значения параметров ''retry'' и ''timeout'' для количества повторных попыток и максимального времени выполнения, соответственно.
* Независимо от результата, агент сохранит отметку о выполнении. **Каждая команда выполняется только один раз**.
* Обновление имени команды заставит агента выполнить ее снова, так как ссылка изменится.
* Вы можете назначить одному и тому же агенту столько команд, сколько пожелаете.
* Выполнение команд в агенте может повлиять на мониторинг; не используйте //таймаут//, превышающий интервал агента.
[[:ru:documentation:start|Вернуться в оглавление Документации Pandora FMS]]