From 04ccca18f209536d8fea027d4a0f71e8e21f8dba Mon Sep 17 00:00:00 2001 From: Victor LABORIE Date: Tue, 3 Jan 2017 12:41:19 +0100 Subject: [PATCH] init tomcat-instance role --- tomcat-instance/defaults/main.yml | 4 + tomcat-instance/files/tomcat.service | 16 +++ tomcat-instance/handlers/main.yml | 6 + tomcat-instance/tasks/alias.yml | 18 +++ tomcat-instance/tasks/bootstrap.yml | 36 ++++++ tomcat-instance/tasks/check.yml | 37 ++++++ tomcat-instance/tasks/main.yml | 13 ++ tomcat-instance/tasks/systemd.yml | 12 ++ tomcat-instance/tasks/tomcat.yml | 24 ++++ tomcat-instance/tasks/user.yml | 47 +++++++ tomcat-instance/templates/bin/disable.sh | 4 + tomcat-instance/templates/bin/enable.sh | 4 + tomcat-instance/templates/bin/shutdown.sh | 4 + tomcat-instance/templates/bin/startup.sh | 4 + tomcat-instance/templates/bin/status.sh | 4 + tomcat-instance/templates/env.j2 | 5 + tomcat-instance/templates/server.xml.j2 | 148 ++++++++++++++++++++++ 17 files changed, 386 insertions(+) create mode 100644 tomcat-instance/defaults/main.yml create mode 100644 tomcat-instance/files/tomcat.service create mode 100644 tomcat-instance/handlers/main.yml create mode 100644 tomcat-instance/tasks/alias.yml create mode 100644 tomcat-instance/tasks/bootstrap.yml create mode 100644 tomcat-instance/tasks/check.yml create mode 100644 tomcat-instance/tasks/main.yml create mode 100644 tomcat-instance/tasks/systemd.yml create mode 100644 tomcat-instance/tasks/tomcat.yml create mode 100644 tomcat-instance/tasks/user.yml create mode 100755 tomcat-instance/templates/bin/disable.sh create mode 100755 tomcat-instance/templates/bin/enable.sh create mode 100755 tomcat-instance/templates/bin/shutdown.sh create mode 100755 tomcat-instance/templates/bin/startup.sh create mode 100755 tomcat-instance/templates/bin/status.sh create mode 100644 tomcat-instance/templates/env.j2 create mode 100644 tomcat-instance/templates/server.xml.j2 diff --git a/tomcat-instance/defaults/main.yml b/tomcat-instance/defaults/main.yml new file mode 100644 index 00000000..75ef7e71 --- /dev/null +++ b/tomcat-instance/defaults/main.yml @@ -0,0 +1,4 @@ +--- +tomcat_instance_root: '/srv/tomcat' +tomcat_instance_port: 8080 +tomcat_instance_ram: 512 diff --git a/tomcat-instance/files/tomcat.service b/tomcat-instance/files/tomcat.service new file mode 100644 index 00000000..c54eb4be --- /dev/null +++ b/tomcat-instance/files/tomcat.service @@ -0,0 +1,16 @@ +[Unit] +Description=Tomcat %u. +After=network.target + +[Service] +WorkingDirectory=%h +Environment="CATALINA_BASE=%h" +EnvironmentFile=%h/conf/env +UMask=0002 +ExecStart=/usr/share/tomcat7/bin/startup.sh +ExecStop=/usr/share/tomcat7/bin/shutdown.sh +ExecStopPost=/bin/sh -c date | /usr/bin/mail -s "%H/%u : Shutdown instance" %u +Type=forking + +[Install] +WantedBy=default.target diff --git a/tomcat-instance/handlers/main.yml b/tomcat-instance/handlers/main.yml new file mode 100644 index 00000000..fb2a830e --- /dev/null +++ b/tomcat-instance/handlers/main.yml @@ -0,0 +1,6 @@ +--- +- name: new aliases + command: newaliases + +- name: systemd reload + shell: systemctl daemon-reload diff --git a/tomcat-instance/tasks/alias.yml b/tomcat-instance/tasks/alias.yml new file mode 100644 index 00000000..18046363 --- /dev/null +++ b/tomcat-instance/tasks/alias.yml @@ -0,0 +1,18 @@ +--- +- name: Create bin dir for alias + file: + path: "{{ tomcat_instance_root }}/{{ tomcat_instance_name }}/bin" + state: directory + mode: 0770 + owner: "{{ tomcat_instance_name }}" + group: "{{ tomcat_instance_name }}" + +- name: Copy alias script for systemctl --user + template: + src: "{{ item }}" + dest: "{{ tomcat_instance_root }}/{{ tomcat_instance_name }}/bin/" + mode: 0770 + owner: "{{ tomcat_instance_name }}" + group: "{{ tomcat_instance_name }}" + with_fileglob: + - 'templates/bin/*' diff --git a/tomcat-instance/tasks/bootstrap.yml b/tomcat-instance/tasks/bootstrap.yml new file mode 100644 index 00000000..e356eb4c --- /dev/null +++ b/tomcat-instance/tasks/bootstrap.yml @@ -0,0 +1,36 @@ +--- +- name: Create tomcat dirs + file: + path: "{{ tomcat_instance_root }}/{{ tomcat_instance_name }}/{{ item }}" + state: directory + mode: 02770 + with_items: + - 'conf' + - 'logs' + - 'webapps' + - 'work' + - 'temp' + - 'lib' + +- name: Copy conf dir + shell: "cp /usr/share/tomcat7/skel/conf/* {{ tomcat_instance_root }}/{{ tomcat_instance_name }}/conf/" + +- name: Copy server.xml + template: + src: 'templates/server.xml.j2' + dest: "{{ tomcat_instance_root }}/{{ tomcat_instance_name }}/conf/server.xml" + mode: 0660 + +- name: Copy env file + template: + src: 'templates/env.j2' + dest: "{{ tomcat_instance_root }}/{{ tomcat_instance_name }}/conf/env" + mode: 0660 + +- name: Fix owner + file: + name: "{{ tomcat_instance_root }}/{{ tomcat_instance_name }}" + state: directory + owner: "{{ tomcat_instance_name }}" + group: "{{ tomcat_instance_name }}" + recurse: yes diff --git a/tomcat-instance/tasks/check.yml b/tomcat-instance/tasks/check.yml new file mode 100644 index 00000000..ae61a820 --- /dev/null +++ b/tomcat-instance/tasks/check.yml @@ -0,0 +1,37 @@ +--- +- name: Check tomcat_instance_name + debug: + msg: "{{ tomcat_instance_name }}" + +- name: Check use of gid + shell: id -ng "{{ tomcat_instance_port }}" + register: check_port_gid + changed_when: false + failed_when: + - check_port_gid|succeeded + - check_port_gid.stdout != "{{ tomcat_instance_name }}" + +- name: Check use of uid + shell: id -nu "{{ tomcat_instance_port }}" + register: check_port_uid + changed_when: false + failed_when: + - check_port_uid|succeeded + - check_port_uid.stdout != "{{ tomcat_instance_name }}" + +#- name: Check use of http port +# shell: grep ' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +