New Supermarket Announcements!

The Chef Community Cookbooks Survey

We would love to know more about what you think about community cookbooks and are runnning a quick survey. This will help us understand the role they play in your use of Chef. As a community member, you are invited to participate. You have a unique understanding of the role community cookbooks have in your work, and we value your opinion. Most people take about 5 minutes to complete this survey. There are no right or wrong answers; we are interested in your opinions.
Chef Community Cookbooks Survey

Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the supermarket mailing list or in Gitter.

Select Supported Platforms

RSS

tomcat (24) Versions 0.17.3

Installs/Configures tomcat

Berkshelf
Librarian
Knife
cookbook 'tomcat', '~> 0.17.3'
cookbook 'tomcat', '~> 0.17.3'
knife cookbook site install tomcat
knife cookbook site download tomcat
README
Dependencies
Changelog
Foodcritic

tomcat Cookbook

Installs and configures Tomcat, Java servlet engine and webserver.

Requirements

Platforms

  • Debian, Ubuntu (OpenJDK, Oracle)
  • CentOS 6+, Red Hat 6+, Fedora, Amaxon (OpenJDK, Oracle), Scientific Linux 6

Dependencies

  • java
  • openssl

Attributes

  • node["tomcat"]["base_version"] - The version of tomcat to install, default 6.
  • node["tomcat"]["port"] - The network port used by Tomcat's HTTP connector, default 8080.
  • node["tomcat"]["proxy_port"] - if set, the network port used by Tomcat's Proxy HTTP connector, default nil.
  • node["tomcat"]["ssl_port"] - The network port used by Tomcat's SSL HTTP connector, default 8443.
  • node["tomcat"]["ssl_proxy_port"] - if set, the network port used by Tomcat's Proxy SSL HTTP connector, default nil.
  • node["tomcat"]["ajp_port"] - The network port used by Tomcat's AJP connector, default 8009.
  • node["tomcat"]["shutdown_port"] - The network port used by Tomcat to listen for shutdown requests, default 8005.
  • node["tomcat"]["catalina_options"] - Extra options to pass to the JVM only during start and run commands, default "".
  • node["tomcat"]["java_options"] - Extra options to pass to the JVM, default -Xmx128M -Djava.awt.headless=true.
  • node["tomcat"]["use_security_manager"] - Run Tomcat under the Java Security Manager, default false.
  • node["tomcat"]["loglevel"] - Level for default Tomcat's logs, default INFO.
  • node["tomcat"]["deploy_manager_apps"] - whether to deploy manager apps, default true.
  • node["tomcat"]["authbind"] - whether to bind tomcat on lower port numbers, default no.
  • node["tomcat"]["max_threads"] - maximum number of threads in the connector pool.
  • node["tomcat"]["tomcat_auth"] -
  • node["tomcat"]["instances"] - A dictionary defining additional tomcat instances to run.
  • node["tomcat"]["run_base_instance"] - Whether or not to run the "base" tomcat instance, default true.
  • node["tomcat"]["user"] -
  • node["tomcat"]["group"] -
  • node["tomcat"]["home"] -
  • node["tomcat"]["base"] -
  • node["tomcat"]["config_dir"] -
  • node["tomcat"]["log_dir"] -
  • node["tomcat"]["tmp_dir"] -
  • node["tomcat"]["work_dir"] -
  • node["tomcat"]["context_dir"] -
  • node["tomcat"]["webapp_dir"] -
  • node["tomcat"]["lib_dir"] -
  • node["tomcat"]["endorsed_dir"] -

Attributes for SSL

  • node["tomcat"]["ssl_cert_file"] - SSL certificate file
  • node["tomcat"]["ssl_chain_files"] - SSL CAcert chain files used for generating the SSL certificates
  • node["tomcat"]["ssl_max_threads"] - maximum number of threads in the ssl connector pool, default 150.
  • node["tomcat"]["keystore_file"] - Location of the file where the SSL keystore is located
  • node["tomcat"]["keystore_password"] - Generated by the secure_password method from the openssl cookbook; if you are using Chef Solo, set this attribute on the node
  • node["tomcat"]["truststore_password"] - Generated by the secure_password method from the openssl cookbook; if you are using Chef Solo, set this attribute on the node
  • node["tomcat"]["truststore_file"] - location of the file where the SSL truststore is located
  • node["tomcat"]["certificate_dn"] - DN for the certificate
  • node["tomcat"]["keytool"] - path to keytool, used for generating the certificate, location varies by platform

Prerequisites

Due to the multitude of Java implementations you might want to use, this cookbook does not attempt to address the installation of a JRE/JDK. Please make sure that Java has been configured on the machine prior to the application any resources or recipes shipped in this cookbook.

Usage

Simply include the recipe where you want Tomcat installed.

Due to the ways that some system init scripts call the configuration, you may wish to set the java options to include JAVA_OPTS. As an example for a java app server role:

name "java-app-server"
run_list("recipe[tomcat]")
override_attributes(
  'tomcat' => {
    'java_options' => "${JAVA_OPTS} -Xmx128M -Djava.awt.headless=true"
  }
)

Running Multiple Instances

To run multiple instances of Tomcat, populate the instances attribute, which is a dictionary of instance name => array of attributes. Most of the same attributes that can be used globally for the tomcat cookbook can also be set per-instance - see resources/instance.rb for details.

If they are not set for a particular instance, the base, home, config_dir, log_dir, work_dir, context_dir, and webapp_dir attributes are created by modifying the global values to use the instance name. For example, under Tomcat 7, with home /usr/share/tomcat7, home for instance "instance1" would be set to /usr/share/tomcat7-instance1. The port attributes - port, proxy_port, ssl_port, ssl_proxy_port, ajp_port, and shutdown_port - are not inherited and must be set per-instance. Other attributes that are not set are inherited unmodified from the global attributes. Each instance must define shutdown_port, and at least one of port, ssl_port or ajp_port.

If you only want to run specific instances and not the "base" tomcat instances, you can set run_base_instance to false.

Here is an example partial role:

...
"override_attributes": {
  "tomcat": {
    "run_base_instance": false,
    "instances": {
      "instance1": {
        "port": 8081,
        "shutdown_port": 8006
      },
      "lookup": {
        "port": 8082,
        "shutdown_port": 8007,
        "java_options": "-Xms1G -Xmx2G"
      }
    },
    ...
  }
  ...
}

Managing Tomcat Users

The recipe tomcat::users included in this cookbook is used for managing Tomcat users. The recipe adds users and roles to the tomcat-users.xml conf file.

Users are defined by creating a tomcat_users data bag and placing Encrypted Data Bag Items in that data bag. Each encrypted data bag item requires an 'id', 'password', and a 'roles' field. The data bag key is retrieved from the default location /etc/chef/encrypted_data_bag_secret.

{
  "id": "reset",
  "password": "supersecret",
  "roles": [
    "manager",
    "admin"
  ]
}

If you are a Chef Solo user the data bag items are not required to be encrypted and should not be.

License & Authors

Copyright:: 2010-2013, Chef Software, Inc

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Dependent cookbooks

yum-epel >= 0.0.0
openssl >= 0.0.0
java >= 0.0.0

Contingent cookbooks

application Applicable Versions
application_java Applicable Versions
asgard Applicable Versions
bigdata Applicable Versions
bonita Applicable Versions
cassandra-priam Applicable Versions
chef-solr Applicable Versions
eulipion-cleanspeak Applicable Versions
ice Applicable Versions
jahia Applicable Versions
jetbrains_license_server Applicable Versions
ohmage Applicable Versions
railo Applicable Versions
rest2ldap Applicable Versions
seyren Applicable Versions
solr_app Applicable Versions
typo3_solr Applicable Versions
webgoat Applicable Versions

tomcat Cookbook CHANGELOG

This file is used to list changes made in each version of the tomcat cookbook.

v0.17.3 (2015-02-22)

  • Fix package names and directories for Tomcat 7 on RHEL

v0.17.2 (2015-02-18)

  • reverting OpenSSL module namespace change

v0.17.1 (2015-02-17)

  • updating to use the latest openssl

v0.17.0 (2014-12-11)

  • Removed installation of Java

v0.16.2 (2014-08-06)

  • #80 - Fix broken server.xml when not using ssl

v0.16.0 (2014-06-11)

  • #70 - [COOK-4332] Support running multiple instance
  • #73 - Be pedantic on where the data bag secret should be placed.

v0.15.12 (2014-04-23)

  • [COOK-3745] - Scientific Linux support for Tomcat
  • [COOK-4573] - Oracle Linux support for Tomcat
  • [COOK-4574] - genkeypair is not a valid parameter to keytool
  • [COOK-4575] - update test harness for Ubuntu 14.04'

v0.15.10 (2014-03-27)

  • [COOK-4487] - Use tomcat group in /etc/default template

v0.15.8 (2014-03-19)

  • [COOK-4209] - Remove "Host element/XML Validation" in tomcat 7 and above

v0.15.6 (2014-03-12)

  • [COOK-4301] - Duplicate truststore settings added to java_options every chef-client run

v0.15.4 (2014-02-18)

Improvement

  • COOK-4258 - tomcat: support for Apache mod_jk load balancing with jvmRoute
  • COOK-3370 - Don't install the tomcat manager apps package if we're not going to use it

Bug

  • COOK-4257 - tomcat: broken on SmartOS SmartMachine images 13.3.0+
  • COOK-4097 - default["tomcat"]["keytool"] is set to non-existent file on Debian/Ubuntu

v0.15.2

New Feature

  • [COOK-3622] - Add support for Amazon platform to the tomcat cookbook.

Bug

  • [COOK-3379] - Only regenerate keystore and restart tomcat when source files change
  • [COOK-1599] - Add retry and delay to tomcat service definition

v0.15.0

Improvement

  • COOK-3565 - Make server.xml connectors maxThreads params configurable via attributes

New Feature

v0.14.4

Bug

  • COOK-3378 - Use keystore in the port 8443 connector
  • COOK-3204 - Fix hard-coded path to tomcat-users.xml
  • COOK-3203 - Support "reload" on Ubuntu 12.04

Improvement

  • COOK-3195 - Fix error for creating endorsed dir
  • COOK-3083 - Add an attribute to lib directory

v0.14.2

Bug

  • [COOK-3165]: Typo in tomcat attributes/default.rb file for webapp_dir attribute on Debian/Ubuntu

v0.14.0

Sub-task

  • [COOK-1808]: Add Support for Tomcat 7 (ubuntu 12.04+, debian 7+)

v0.13.0

Improvement

  • [COOK-2999]: Attributes are "set" and not "default"

Bug

  • [COOK-2421]: Correct name of cookbook in attributes/default.rb
  • [COOK-2838]: Fix foodcritic warnings in tomcat cookbook

New Feature

  • [COOK-2422]: Support disabling Tomcat auth
  • [COOK-2425]: Add SSL connector support
  • [COOK-2533]: Ability to set loglevel
  • [COOK-2736]: Add CATALINA_OPTS for Tomcat start/run options

v0.12.0

  • [COOK-1736] - Add AUTHBIND attribute

v0.11.0

  • [COOK-1499] - manage tomcat users

v0.10.4

  • [COOK-1110] - remove deprecated (by upstream) jpackage recipe
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/6a6aeb72252914f65fb3fbff/tomcat/recipes/default.rb:25
FC002: Avoid string interpolation where not required: /tmp/cook/6a6aeb72252914f65fb3fbff/tomcat/providers/instance.rb:59
FC002: Avoid string interpolation where not required: /tmp/cook/6a6aeb72252914f65fb3fbff/tomcat/providers/instance.rb:60
FC002: Avoid string interpolation where not required: /tmp/cook/6a6aeb72252914f65fb3fbff/tomcat/providers/instance.rb:259
FC002: Avoid string interpolation where not required: /tmp/cook/6a6aeb72252914f65fb3fbff/tomcat/providers/instance.rb:262
FC002: Avoid string interpolation where not required: /tmp/cook/6a6aeb72252914f65fb3fbff/tomcat/providers/instance.rb:265
FC002: Avoid string interpolation where not required: /tmp/cook/6a6aeb72252914f65fb3fbff/tomcat/providers/instance.rb:272
FC002: Avoid string interpolation where not required: /tmp/cook/6a6aeb72252914f65fb3fbff/tomcat/recipes/default.rb:74
FC017: LWRP does not notify when updated: /tmp/cook/6a6aeb72252914f65fb3fbff/tomcat/providers/instance.rb:1
FC019: Access node attributes in a consistent manner: /tmp/cook/6a6aeb72252914f65fb3fbff/tomcat/recipes/default.rb:25
FC023: Prefer conditional attributes: /tmp/cook/6a6aeb72252914f65fb3fbff/tomcat/providers/instance.rb:58
FC023: Prefer conditional attributes: /tmp/cook/6a6aeb72252914f65fb3fbff/tomcat/providers/instance.rb:253
FC023: Prefer conditional attributes: /tmp/cook/6a6aeb72252914f65fb3fbff/tomcat/recipes/default.rb:62
FC031: Cookbook without metadata file: /tmp/cook/6a6aeb72252914f65fb3fbff/tomcat/metadata.rb:1
FC045: Consider setting cookbook name in metadata: /tmp/cook/6a6aeb72252914f65fb3fbff/tomcat/metadata.rb:1