Новые подходы автоматизации Wildfly

?v=1

Доброго времени суток хаброжители.
Достаточное количество времени назад я писал о первых шагах в автоматизации Wildfly, но прогресс не стоит на месте и пришло время взглянуть на новые подходы.
Добро пожаловать под кат

Проект Wildfly к моему большому удовольствию, не стоит на месте, а активно развивается. Работая с ним достаточное количество времени (уже года 4!), удалось обуздать и наладить процессы.

Важной находкой является в первую очередь является отличный модуль для ansible — jboss (да-да, он может работать и с jboss). Модуль официально представлен на страничке RedHat раздела Ansible и дает достаточно удобный функционал для управлениями деплоем
Инфраструктура у нас построена полностью на ansible, что позволило без проблем интегрировать данный модуль в имеющиеся пайпы работы с окружениями.
Достаточно красивый на мой взгляд пример функциональности:

- name: APP deployment
  jboss:
    src: "DIR_WITH_EAR/application_file.ear" #ear/war/jar файл для деплоя
    deploy_path: 'wildfly_path/deployments' #Директория для деплоя
    deployment: "application_file_version.ear" #Версия приложения - возможно изменение при деплое


В чем неотвратимое удобство в данном случае?
Необходимый файл для деплоя необходимо положить непосредственно только в одну директорию и в дальнейшем из нее можно деплоить в несколько application servers — это экономит время на копирование, скачивание и так же экономит место, необходимое под файл.

Так же не стоит забывать, что конфигурации wildfly сервера представлены в файлах xml вида:

  1. standalone.xml
  2. standalone.conf

Такой формат взаимодействия с конфигурацией отлично ложится на шаблоны через jinja templates.

Кроме этого, создание юзера и его пароля, кроме того, что отлично автоматизируется через add-user.sh, имеют отличное свойство добавляться копированием хэша, что позволяет на одной машине при наличии возможности переносить созданного юзера добавлением строк в application-users.properties
Таким образом, использование Wildfly отлично сочетается с использованием Ansible, позволяя держать все окружение в формате yml кода.

Так же, на данный момент, аналогичные модули можно найти в других configuration management тулзах, в частности puppet

© Habrahabr.ru