zaxos.tomcat-ansible-role
tomcat-ansible-role
CentOS/RHELにApache Tomcatをインストールして設定するためのAnsible役割です。
要件
- この役割でサポートされるTomcatのバージョン:
- 7.0
- 8.0
- 8.5
- 9.0(9.0.1以上)
- CentOS/RHEL 7または8
- SELinux無効
インストール
$ ansible-galaxy install zaxos.tomcat-ansible-role
例プレイブック
- hosts: servers
become: true
vars:
tomcat_version: 8.5.23
tomcat_permissions_production: True
tomcat_users:
- username: "tomcat"
password: "t3mpp@ssw0rd"
roles: "tomcat,admin,manager,manager-gui"
- username: "exampleuser"
password: "us3rp@ssw0rd"
roles: "tomcat"
roles:
- role: zaxos.tomcat-ansible-role
役割の変数
主な変数:
tomcat_version
: インストールするTomcatのバージョン
確認が必要な変数:
tomcat_install_java
: True
デフォルトではOpenJDK Javaがインストールされます。この役割でOpenJDK Javaをインストールしたくない場合は"False"に変更してください。tomcat_java_version
: 1.8
インストールするOpenJDK Javaのバージョン。デフォルトは"1.8"です。現在の最新のOpenJDK Javaバージョンは"11"です。tomcat_install_path
: /opt
Tomcatがインストールされる場所。デフォルトは"/opt"です。- JVMメモリ管理:
システム全体のメモリのパーセンテージとして、次のJVM -Xmsおよび-Xmx変数を使用して最小および最大メモリヒープサイズを設定できます。たとえば、2GBのRAMシステムの場合、デフォルト値を使用すると:Xms=307m(2048MBの15%)、Xmx=1126m(2048MBの55%)。tomcat_jvm_memory_percentage_xms
: 15tomcat_jvm_memory_percentage_xmx
: 55
tomcat_allow_manager_access_only_from_localhost
: False
"True"に設定すると、セキュリティ上の理由からTomcatマネージャーアプリはlocalhostからのみアクセス可能になります。(この動作はTomcat 8.5および9.0のデフォルトです)tomcat_allow_host_manager_access_only_from_localhost
: False
"True"に設定すると、セキュリティ上の理由からTomcatホストマネージャーアプリはlocalhostからのみアクセス可能になります。(この動作はTomcat 8.5および9.0のデフォルトです)tomcat_users
: 作成するTomcatユーザーのリスト。期待されるフォーマットについては例を参照してください。tomcat_debug_mode
: False
リモートデバッグを許可するためにTomcatを設定するには、"True"に変更してください。デフォルトのデバッグポートはtcp/8000に設定されています(変更可能です)。
ファイルの権限:
tomcat_permissions_production
: False
本番環境のインストールの場合、この変数を"True"に設定してより厳格なセキュリティを確保します。開発や低セキュリティ/緩やかなインストールの場合はこの変数を"False"に設定します。デフォルトは"False"です。- "True"に設定すると、すべてのTomcatファイルはrootが所有し、グループはtomcatになります。所有者は読み取り/書き込み権限があり、グループは読み取りのみ、全体は権限を持ちません。例外として、ログ、temp、workディレクトリはrootではなくTomcatユーザーが所有します。
- "False"に設定すると、すべてのTomcatファイルはTomcatが所有し、グループはtomcatになります。所有者とグループは読み取り/書き込み権限を持ち、全体は読み取りのみの権限を持ちます。
tomcat_webapps_auto_deployment
: True
セキュリティを高めるために、自動デプロイを無効にし、Webアプリケーションを展開されたディレクトリとしてデプロイする必要があります。自動デプロイを無効にする場合は、"False"に設定します。この変数は本番環境のインストールにのみ意味があります(tomcat_permissions_productionが"True"の場合)。デフォルトは"True"です。- "True"に設定すると、webappsサブディレクトリはtomcatが所有し、グループはtomcatになります。
- "False"に設定すると、webappsサブディレクトリはrootが所有し、グループはtomcatになります。
tomcat_permissions_ensure_on_every_run
: True
"True"に設定すると、ファイルの権限が毎回のプレイブック実行で確保されます。"False"に設定すると、Tomcatがインストールされているとき(最初のプレイブック実行時)のみファイルの権限が設定されます。tomcat_prod_modes
:
Tomcatのサブディレクトリ、ディレクトリモード、ファイルモードをそれぞれ列挙します。権限は再帰的に適用されます。
tomcat_prod_modes:
- ['bin', '2750', '0640']
- ['conf', '2750', '0640']
- ['lib', '2750', '0640']
- ['logs', '0300', '0640']
- ['temp', '0750', '0640']
- ['work', '0750', '0640']
- ['webapps', '0750', '0640']
Tomcatのポート:
tomcat_port_connector
: 8080tomcat_port_shutdown
: 8005tomcat_port_redirect
: 8443tomcat_port_ajp
: 8009tomcat_port_debug
: 8000
Tomcat AJP:
tomcat_ajp_enabled
: False
"True"に設定するとAJPコネクタを有効にします。tomcat_ajp_listen_address
: "::1"
デフォルトでは、コネクタはループバックアドレスでリッスンします。JVMが他の設定をしていない限り、Javaベースのコネクタ(NIO、NIO2)は"0.0.0.0"または"::"で設定されている場合、IPv4およびIPv6アドレスの両方でリッスンします。APR/ネイティブコネクタは、"0.0.0.0"で設定されている場合はIPv4アドレスでのみリッスンし、"::"で設定されている場合はIPv6アドレス(および設定によってはIPv4アドレスも)でリッスンします。tomcat_ajp_secret
: "my-@jp-s3cr3t"
この属性は、"secretRequired"が明示的に"false"に設定されない限り、null以外の値で必ず指定する必要があります。デフォルトの値は安全なものに変更してください。tomcat_ajp_secret_required
: True
"False"に設定して"secretRequired=False"に設定します。
いくつかのデフォルト(おそらく変更する必要はありません):
tomcat_service_name
: tomcattomcat_service_enabled_on_startup
: Truetomcat_java_home
: /usr/lib/jvm/jretomcat_downloadURL
: https://archive.apache.org/disttomcat_user
: tomcattomcat_group
: tomcattomcat_listen_address
: 0.0.0.0tomcat_temp_download_path
: /tmp/ansibletomcattempdirtomcat_systemd_config_path
: /etc/systemd/system
server.xml、users.xml、systemdサービスファイルなどのカスタムテンプレート:
- デフォルトのテンプレートが必要に合わない場合は、次の変数を変更して独自のカスタムテンプレートを使用できます:
tomcat_template_server
tomcat_template_users
tomcat_template_systemd_service
tomcat_template_setenv
tomcat_template_manager_context
tomcat_template_host_manager_context
オプションの変数(デフォルトでは未定義):
- 複数のサーバー間で均一性を保つために、カスタムユーザーuidとグループgidを設定できます。例:
tomcat_user_uid
: 500tomcat_group_gid
: 500
アンインストールの場合:
tomcat_state
: absent- この役割を使用してインストールされたTomcatをアンインストールするには、この変数を"absent"に設定します。デフォルト値は"present"です。
tomcat_uninstall_create_backup
: True
デフォルトでは、安全策として、削除前に"tomcat_install_path"にバックアップtarアーカイブが作成されます。tomcat_uninstall_remove_java
: False
Tomcatがアンインストールされた後にJavaをアンインストールするには、"True"に変更します。- デフォルトでは、Tomcatユーザーとグループが削除されます。Tomcatがアンインストールされた後もそれらを保持するには、"False"に変更します。
tomcat_uninstall_remove_user
: Truetomcat_uninstall_remove_group
: True
tomcat_uninstall_remove_all
: False
上記の値をオーバーライドしてすべてアンインストールするには、"True"に設定します。
切断されたリモート環境用の変数:
tomcat_remote_is_disconnected
: False
リモートホスト(管理ホスト)がオフラインでインターネットにアクセスできない場合は、"True"に変更します。