robertdebock.tomcat

Rola Ansible tomcat

Zainstaluj i skonfiguruj Tomcat na swoim systemie.

GitHub GitLab Pobrania Wersja
github gitlab downloads Wersja

Przykładowy Playbook

Ten przykład pochodzi z molecule/default/converge.yml i jest testowany przy każdym pushu, pull request i wydaniu.

---
- name: Converge
  hosts: all
  become: true
  gather_facts: true

  vars:
    # tomcat_address: "127.0.0.1"
    tomcat_instances:
      - name: "tomcat"
      # - name: "tomcat-version-7"
      #   version: 7
      #   shutdown_port: 8007
      #   non_ssl_connector_port: 8082
      #   ssl_connector_port: 8445
      #   ajp_port: 8011
      # - name: "tomcat-version-8"
      #   version: 8
      #   shutdown_port: 8008
      #   non_ssl_connector_port: 8083
      #   ssl_connector_port: 8446
      #   ajp_port: 8012
      # - name: "tomcat-version-9"
      #   version: 9
      #   shutdown_port: 8019
      #   non_ssl_connector_port: 8084
      #   ssl_connector_port: 8447
      #   ajp_port: 8013
      # - name: "tomcat-specific"
      #   user: "specificuser"
      #   group: "specificgroup"
      #   shutdown_port: 8020
      #   shutdown_pass: shutme
      #   non_ssl_connector_port: 8085
      #   ssl_connector_port: 8448
      #   ajp_port: 8014
      #   xms: 256M
      #   xmx: 512M
      # - name: "tomcat-with-wars"
      #   shutdown_port: 8021
      #   non_ssl_connector_port: 8086
      #   ssl_connector_port: 8449
      #   ajp_port: 8015
      #   wars:
      #     - url: https://tomcat.apache.org/tomcat-7.0-doc/appdev/sample/sample.war
      #     - url: "https://github.com/aeimer/java-example-helloworld-war/raw/master/dist/helloworld.war"
      # - name: "tomcat-java_opts"
      #   shutdown_port: 8022
      #   non_ssl_connector_port: 8087
      #   ssl_connector_port: 8449
      #   ajp_port: 8016
      #   java_opts:
      #     - name: UMASK
      #       value: "0007"
      # - name: "tomcat-with_lib"
      #   shutdown_port: 8023
      #   non_ssl_connector_port: 8088
      #   ssl_connector_port: 8450
      #   ajp_port: 8017
      #   libs:
      #     - url: "https://search.maven.org/remotecontent?filepath=io/prometheus/simpleclient/0.6.0/simpleclient-0.6.0.jar"
      # - name: "tomcat-access-logs"
      #   shutdown_port: 8024
      #   non_ssl_connector_port: 8089
      #   ssl_connector_port: 8451
      #   ajp_port: 8018
      #   access_log_enabled: true
      #   access_log_directory: "my-logs"
      #   access_log_prefix: my-access-logs
      #   access_log_suffix: ".log"
      #   access_log_pattern: "%h %l %u %t "%r" %s %b"
      # - name: "tomcat-config-files"
      #   shutdown_port: 8025
      #   non_ssl_connector_port: 8090
      #   ssl_connector_port: 8452
      #   ajp_port: 8019
      #   ajp_secret: "SoMe-SeCrEt"
      #   config_files:
      #     - src: "{{ role_path }}/files/dummy.properties"
      #       dest: "./"
      #       mode: "0644"

  roles:
    - role: robertdebock.tomcat

Maszyna musi być odpowiednio przygotowana. W CI robi się to przy użyciu molecule/default/prepare.yml:

---
- name: Przygotować
  hosts: all
  become: true
  gather_facts: false

  roles:
    - role: robertdebock.bootstrap
    - role: robertdebock.core_dependencies
    - role: robertdebock.java
      # __java_version:
      #   default: 8
      #   Debian: 11
      #   Debian-bookworm: 17
      # java_version: "{{ _desired_java_version[ansible_distribution ~ '-' ~ ansible_distribution_release] | default(_desired_java_version[ansible_distribution] | default(_desired_java_version['default'])) }}"

Zobacz także pełne wyjaśnienie i przykład na temat używania tych ról.

Zmienne Roli

Domyślne wartości dla zmiennych są ustawione w defaults/main.yml:

---
# domyślne wartości dla tomcat

# Niektóre "rozsądne" domyślne wartości.
tomcat_name: tomcat
tomcat_directory: /opt
tomcat_version: 9
tomcat_user: tomcat
tomcat_group: tomcat
tomcat_xms: 512M
tomcat_xmx: 1024M
tomcat_non_ssl_connector_port: 8080
tomcat_ssl_connector_port: 8443
tomcat_shutdown_port: 8005
tomcat_shutdown_pass: SHUTDOWN
tomcat_ajp_enabled: true
tomcat_ajp_port: 8009
tomcat_ajp_secret: "SoMe-SeCrEt"
tomcat_jre_home: /usr
tomcat_service_state: started
tomcat_service_enabled: true
# Możesz przypisać Tomcat do określonego adresu globalnie za pomocą tej zmiennej lub
# w `tomcat_instances`. `tomcat_instances.address` jest bardziej specyficzne,
# więc ma priorytet nad `tomcat_address`.
tomcat_address: "0.0.0.0"

# Skonfiguruj dzienniki dostępu Tomcat
tomcat_access_log_enabled: true
tomcat_access_log_directory: logs
tomcat_access_log_prefix: localhost_access_log
tomcat_access_log_suffix: ".txt"
tomcat_access_log_pattern: "%h %l %u %t "%r" %s %b"

# Ta rola pozwala na wiele instalacji Apache Tomcat, każda w swoim własnym
# miejscu, potencjalnie w różnych wersjach.
# Można to zrobić, definiując "tomcat_instances", gdzie "name:" jest unikalnym
# identyfikatorem instancji.
# Domyślna tomcat_instances to jedna instancja korzystająca z domyślnych wartości opisanych
# w defaults/main.yml.
tomcat_instances:
  - name: "{{ tomcat_name }}"
    version: "{{ tomcat_version }}"
    user: "{{ tomcat_user }}"
    group: "{{ tomcat_group }}"
    xms: "{{ tomcat_xms }}"
    xmx: "{{ tomcat_xmx }}"
    non_ssl_connector_port: "{{ tomcat_non_ssl_connector_port }}"
    ssl_connector_port: "{{ tomcat_ssl_connector_port }}"
    shutdown_port: "{{ tomcat_shutdown_port }}"
    ajp_enabled: "{{ tomcat_ajp_enabled }}"
    ajp_port: "{{ tomcat_ajp_port }}"
    ajp_secret: "{{ tomcat_ajp_secret }}"
    # Możesz wybrać adres dla każdej instancji:
    # address: "127.0.0.1"
    packet_size: 8192
    java_opts:
      - name: JRE_HOME
        value: "{{ tomcat_jre_home }}"
    access_log_enabled: "{{ tomcat_access_log_enabled }}"
    access_log_directory: "{{ tomcat_access_log_directory }}"
    access_log_prefix: "{{ tomcat_access_log_prefix }}"
    access_log_suffix: "{{ tomcat_access_log_suffix }}"
    access_log_pattern: "{{ tomcat_access_log_pattern }}"
    service_state: "{{ tomcat_service_state }}"
    service_enabled: "{{ tomcat_service_enabled }}"

# Wyraźna wersja do użycia przy odniesieniu się do krótkiej nazwy.
tomcat_version7: "7.0.109"
tomcat_version8: "8.5.73"
tomcat_version9: "9.0.55"
tomcat_version10: "10.1.12"

# Miejsce, z którego można pobrać Apache Tomcat.
tomcat_mirror: "https://archive.apache.org"

Wymagania

Stan używanych ról

W następujących rolach używanych jest przygotowanie systemu. Możesz przygotować swój system w inny sposób.

Wymaganie GitHub GitLab
robertdebock.bootstrap Stan budowy GitHub Stan budowy GitLab
robertdebock.core_dependencies Stan budowy GitHub Stan budowy GitLab
robertdebock.java Stan budowy GitHub Stan budowy GitLab
robertdebock.service Stan budowy GitHub Stan budowy GitLab

Kontekst

Ta rola jest częścią wielu kompatybilnych ról. Zobacz dokumentację tych ról w celu uzyskania dalszych informacji.

Oto przegląd powiązanych ról: dependencies

Kompatybilność

Ta rola została przetestowana na tych obrazach kontenerów:

kontener tagi
EL 9
Debian wszystkie
Fedora wszystkie
Ubuntu wszystkie

Minimalna wymagana wersja Ansible to 2.12, testy były wykonywane na:

  • Poprzedniej wersji.
  • Bieżącej wersji.
  • Wersji deweloperskiej.

Jeśli znajdziesz problemy, zgłoś je w GitHub.

Licencja

Apache-2.0.

Informacje o autorze

robertdebock

Proszę rozważyć wsparcie mnie.

O projekcie

Install and configure tomcat on your system.

Zainstaluj
ansible-galaxy install robertdebock.tomcat
Licencja
apache-2.0
Pobrania
65.7k
Właściciel
I know my way around (Linux) infrastructure, have a passion for automation, Docker, Ansible, Molecule and ci/cd.