---
- name: Install Tomcat 10
hosts: localhost
become: yes
vars:
tomcat_version: 10.1.55
tomcat_home: /opt/tomcat
java_version: openjdk-21-jdk
tasks:
- name: Update apt cache and install Java
ansible.builtin.apt:
name: "{{ java_version }}"
update_cache: yes
state: present
- name: Create tomcat group
ansible.builtin.group:
name: tomcat
system: yes
- name: Create tomcat user with specific home directory and shell
ansible.builtin.user:
name: tomcat
create_home: yes
home: "{{ tomcat_home }}"
group: tomcat
shell: /bin/false
system: yes
- name: Download and extract Tomcat
ansible.builtin.unarchive:
src: "https://dlcdn.apache.org/tomcat/tomcat-10/v{{ tomcat_version }}/bin/apache-tomcat-{{ tomcat_version }}.tar.gz"
dest: "/tmp/"
remote_src: yes
mode: "0755"
- name: copy files to opt/tomcat
ansible.builtin.copy:
src: /tmp/apache-tomcat-{{ tomcat_version }}/
dest: "{{ tomcat_home }}"
- name: Change file ownership and permissions
ansible.builtin.file:
path: "{{ tomcat_home }}"
owner: tomcat
group: tomcat
mode: "0755"
recurse: yes
- name: Deploy tomcat-users.xml
ansible.builtin.template:
src: templates/tomcat-users.xml.j2
dest: "{{ tomcat_home }}/apache-tomcat-{{ tomcat_version }}/conf/tomcat-users.xml"
owner: tomcat
group: tomcat
mode: "0644"
- name: Deploy context.xml
ansible.builtin.template:
src: templates/context.xml.j2
dest: "{{ tomcat_home }}/apache-tomcat-{{ tomcat_version }}/webapps/manager/META-INF/context.xml"
owner: tomcat
group: tomcat
mode: "0644"
- name: Check Java alternatives
ansible.builtin.shell: update-java-alternatives -l
- name: Deploy Tomcat systemd service
ansible.builtin.template:
src: tomcat.service.j2
dest: /etc/systemd/system/tomcat.service
owner: root
group: root
mode: "0644"
- name: Reload systemd and restart Tomcat
ansible.builtin.systemd:
name: tomcat
state: restarted
enabled: yes
daemon_reload: yes
