Установка Tomcat из коробки в Linux или с помощью apt
или вашего менеджера пакетов по выбору это просто; но, как вы заметили, сложно понять, где все находится и что настроено.
Я обнаружил, что НАИБОЛЕЕ настраиваемый способ автоматизации установки Tomcat в Linux - это использование Chef. Можно установить ChefDK , а затем, используя Tomcat Cookbook для Chef, вы можете снова и снова настраивать и развертывать Chef!
Преимущество установки Tomcat с Chef - это последовательная установка Tomcat стандартным, поддерживаемым способом, соответствующим документации Tomcat для установки в Linux.
Поваренная книга Tomcat не устанавливает Java, поэтому обычно я комбинирую Поваренную книгу Java , чтобы автоматизировать установку JRE с Tomcat.
Ниже приведен пример Роль Chef , который я использовал для развертывания JRE, а затем Tomcat в Linux.
run_list
файла JSON. override_attributes
роли Chef устанавливает атрибуты для Java и Рецепты Tomcat. {
"name": "java-appserver-small",
"default_attributes": {},
"override_attributes": {
"java": {
"jdk_version": "7"
},
"oracle": {
"accept_oracle_download_terms": true
},
"tomcat": {
"java_options": "${JAVA_OPTS} -Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx3g -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+DisableExplicitGC -XX:+CMSClassUnloadingEnabled"
}
},
"json_class": "Chef::Role",
"description": "Role for Java Apps Servers using OpenJDK7 - 15GB Memory",
"chef_type": "role",
"run_list": [
"recipe[java]",
"recipe[tomcat]"
]
}
Это немного требует обучения, но как только вы узнаете, как автоматизировать что-либо в Linux с помощью chef - это отличный старт для быстрого повторного развертывания и автоматизации всего, что вы можете себе представить.
Вы можете добавить третий рецепт к своей роли Chef, который будет развертывать приложение на Tomcat. Обычно Tomcat можно настроить для автоматической распаковки и развертывания файла WAR .
Измените run_list
в роли, чтобы включить другой рецепт:
"run_list": [
"recipe[java]",
"recipe[tomcat]",
"recipe[app-deploy]"
]
Повар рецептов будет использовать app-deploy
- это набор инструкций для копирования предварительно определенного файла WAR в каталог Tomcat webapps . В приведенном ниже примере рецепта путь к файлу WAR определяется в отдельном файле атрибутов , но вы также можете жестко запрограммировать место для копирования.
#
# Cookbook Name:: myChefCookbook
# Recipe:: app-deploy
#
# This recipe only installs the application.
# Base app server is setup via the java app server role.
#
# Copy WAR to webapps for auto-deployment
execute "cp #{node['myappfile']} /var/lib/tomcat/webapps/" do
action :run
not_if { File.exist?("/var/lib/tomcat/webapps/#{server_file(node['myappfile'])}") }
end
Рецепт копирует файл WAR, Tomcat развертывает его.
В последнем примере рецепта ниже копируется (с использованием инструментов AWS) файл WAR из корзины Amazon S3 в экземпляр Linux ] под управлением Tomcat, развернутого шеф-поваром, в облачном провайдере Amazon Web Services.
# Copy WAR to webapps for auto-deployment - Requires that the instance have role with access to bucket
execute "aws s3 cp #{node['urls']['myappurl']} /var/lib/tomcat/webapps/" do
action :run
not_if { File.exist?("/var/lib/tomcat/webapps/#{server_file(node['urls']['myappurl'])}") }
end