DevOps Classroom notes 20/Jun/2026

---
- 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

Leave a ReplyCancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Please turn AdBlock off
Social Media Icons Powered by Acurax Web Design Company

Discover more from Direct DevOps from Quality Thought

Subscribe now to keep reading and get access to the full archive.

Continue reading

Exit mobile version
%%footer%%