From 8c0fb192a5d639bd878bcba59a1422ef05013382 Mon Sep 17 00:00:00 2001 From: "alessandro.rabiti" Date: Thu, 5 Dec 2024 12:28:56 +0100 Subject: [PATCH] feat: aggiunto esempio roles --- 10_roles/README.md | 5 + 10_roles/progetto_esempio2/inventory | 5 + .../roles/apache/defaults/main.yaml | 4 + .../roles/apache/handlers/main.yaml | 5 + .../roles/apache/tasks/main.yaml | 40 ++++++++ .../roles/apache/templates/motd.j2 | 7 ++ .../roles/tomcat/defaults/main.yaml | 7 ++ .../roles/tomcat/files/SampleWebApp.war | Bin 0 -> 8618 bytes .../roles/tomcat/tasks/main.yaml | 94 ++++++++++++++++++ .../roles/tomcat/templates/motd.j2 | 8 ++ .../roles/tomcat/templates/setenv.sh.j2 | 9 ++ 10_roles/progetto_esempio2/runner.yaml | 12 +++ 12 files changed, 196 insertions(+) create mode 100644 10_roles/progetto_esempio2/inventory create mode 100644 10_roles/progetto_esempio2/roles/apache/defaults/main.yaml create mode 100644 10_roles/progetto_esempio2/roles/apache/handlers/main.yaml create mode 100644 10_roles/progetto_esempio2/roles/apache/tasks/main.yaml create mode 100644 10_roles/progetto_esempio2/roles/apache/templates/motd.j2 create mode 100644 10_roles/progetto_esempio2/roles/tomcat/defaults/main.yaml create mode 100644 10_roles/progetto_esempio2/roles/tomcat/files/SampleWebApp.war create mode 100644 10_roles/progetto_esempio2/roles/tomcat/tasks/main.yaml create mode 100644 10_roles/progetto_esempio2/roles/tomcat/templates/motd.j2 create mode 100644 10_roles/progetto_esempio2/roles/tomcat/templates/setenv.sh.j2 create mode 100644 10_roles/progetto_esempio2/runner.yaml diff --git a/10_roles/README.md b/10_roles/README.md index 5327ae6..b02e07d 100644 --- a/10_roles/README.md +++ b/10_roles/README.md @@ -16,3 +16,8 @@ ansible-playbook -iinventory runner.yaml ``` ansible-playbook -iinventory runner.yaml --tags install ``` + +1) progetto_esempio -> ruolo che installa pacchetti e ruolo che aggiorna pacchetti + +2) progetto_esempio2 -> ruolo che installa lbr apache e ruolo che installa webserver tomcat + diff --git a/10_roles/progetto_esempio2/inventory b/10_roles/progetto_esempio2/inventory new file mode 100644 index 0000000..85c1a95 --- /dev/null +++ b/10_roles/progetto_esempio2/inventory @@ -0,0 +1,5 @@ +[lbr] +devcorso1vm ansible_host=localhost +[as] +devcorso2vm ansible_host=10.248.44.79 +devcorso3vm ansible_host=10.248.44.80 diff --git a/10_roles/progetto_esempio2/roles/apache/defaults/main.yaml b/10_roles/progetto_esempio2/roles/apache/defaults/main.yaml new file mode 100644 index 0000000..e5766cb --- /dev/null +++ b/10_roles/progetto_esempio2/roles/apache/defaults/main.yaml @@ -0,0 +1,4 @@ +--- +lbr: + - 10.248.44.79 + - 10.248.44.80 diff --git a/10_roles/progetto_esempio2/roles/apache/handlers/main.yaml b/10_roles/progetto_esempio2/roles/apache/handlers/main.yaml new file mode 100644 index 0000000..6d6d1be --- /dev/null +++ b/10_roles/progetto_esempio2/roles/apache/handlers/main.yaml @@ -0,0 +1,5 @@ +--- +- name: Restart Apache + ansible.builtin.service: + name: httpd + state: restarted diff --git a/10_roles/progetto_esempio2/roles/apache/tasks/main.yaml b/10_roles/progetto_esempio2/roles/apache/tasks/main.yaml new file mode 100644 index 0000000..b42b13b --- /dev/null +++ b/10_roles/progetto_esempio2/roles/apache/tasks/main.yaml @@ -0,0 +1,40 @@ +--- +- name: Installo Apache se assente + ansible.builtin.package: + name: httpd + state: latest + +- name: Start di Apache + ansible.builtin.service: + name: httpd + state: started + enabled: yes + +- name: Configuro lbr Apache + ansible.builtin.copy: + dest: /etc/httpd/conf.d/lbr.conf + content: | + + ServerAdmin {{ ansible_hostname }} + + BalancerMember http://{{ lbr.0 }}:8080 + BalancerMember http://{{ lbr.1 }}:8080 + ProxySet lbmethod=byrequests + + + ProxyPass / balancer://as/ + ProxyPassReverse / balancer://as/ + + owner: root + group: root + mode: '0644' + notify: + - Restart Apache + +- name: Configuro motd + ansible.builtin.template: + src: motd.j2 + dest: /etc/motd + owner: root + group: root + mode: '0644' diff --git a/10_roles/progetto_esempio2/roles/apache/templates/motd.j2 b/10_roles/progetto_esempio2/roles/apache/templates/motd.j2 new file mode 100644 index 0000000..b22917e --- /dev/null +++ b/10_roles/progetto_esempio2/roles/apache/templates/motd.j2 @@ -0,0 +1,7 @@ +############################################################# + + questo e' il server {{ ansible_hostname }} + + LBR Apache + +############################################################# diff --git a/10_roles/progetto_esempio2/roles/tomcat/defaults/main.yaml b/10_roles/progetto_esempio2/roles/tomcat/defaults/main.yaml new file mode 100644 index 0000000..0bf79ca --- /dev/null +++ b/10_roles/progetto_esempio2/roles/tomcat/defaults/main.yaml @@ -0,0 +1,7 @@ +--- +tomcat_version: "9.0.97" +tomcat_url: "https://dlcdn.apache.org/tomcat/tomcat-9/v{{ tomcat_version }}/bin/apache-tomcat-{{ tomcat_version }}.tar.gz" +tomcat_name: "apache-tomcat-{{ tomcat_version }}" +jdk_url: "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.25%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.25_9.tar.gz" +jdk_name: "OpenJDK11U-jdk_x64_linux_hotspot_11.0.25_9.tar.gz" +jdk: "jdk-11.0.25+9" diff --git a/10_roles/progetto_esempio2/roles/tomcat/files/SampleWebApp.war b/10_roles/progetto_esempio2/roles/tomcat/files/SampleWebApp.war new file mode 100644 index 0000000000000000000000000000000000000000..1545caf509c27e00efaf1fa65f428ea75358ea7c GIT binary patch literal 8618 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 F{{!1*igy42 literal 0 HcmV?d00001 diff --git a/10_roles/progetto_esempio2/roles/tomcat/tasks/main.yaml b/10_roles/progetto_esempio2/roles/tomcat/tasks/main.yaml new file mode 100644 index 0000000..eb9c6d6 --- /dev/null +++ b/10_roles/progetto_esempio2/roles/tomcat/tasks/main.yaml @@ -0,0 +1,94 @@ +--- +- name: Download del tomcat + ansible.builtin.get_url: + url: "{{ tomcat_url }}" + dest: /STAGE + validate_certs: false + +- name: creo il gruppo tomcat + ansible.builtin.group: + name: tomcat + state: present + gid: 502 + +- name: creo l'utente tomcat + ansible.builtin.user: + name: tomcat + uid: 503 + group: tomcat + shell: /bin/bash + +- name: Creo la directory tomcat se manca + ansible.builtin.file: + path: /tomcat + state: directory + owner: tomcat + group: tomcat + mode: '0755' + +- name: Scompatto il tar tomcat + ansible.builtin.unarchive: + src: /STAGE/{{ tomcat_name }}.tar.gz + dest: /tomcat/ + remote_src: true + +- name: Correzione permessi + ansible.builtin.file: + path: /tomcat/{{ tomcat_name }} + owner: tomcat + group: tomcat + recurse: true + +- name: Download jdk + ansible.builtin.get_url: + url: "{{ jdk_url }}" + dest: /STAGE + validate_certs: false + +- name: Scompatto il tar jdk + ansible.builtin.unarchive: + src: /STAGE/{{ jdk_name }} + dest: /opt/ + remote_src: true + +- name: Import del setenv.sh + ansible.builtin.template: + src: setenv.sh.j2 + dest: /tomcat/{{ tomcat_name }}/bin/setenv.sh + owner: tomcat + group: tomcat + mode: '0644' + +- name: Import webapp + ansible.builtin.copy: + src: SampleWebApp.war + dest: /tomcat/{{ tomcat_name }}/webapps/SampleWebApp.war + owner: tomcat + group: tomcat + mode: '0644' + +- name: Check se tomcat attivo + ansible.builtin.shell: ps -fu tomcat | grep -w "{{ tomcat_name }} " | wc -l + register: tomcat_status + +- name: Stop del tomcat + ansible.builtin.command: + cmd: sudo su -c "/tomcat/{{ tomcat_name }}/bin/shutdown.sh -force" -s /bin/sh tomcat + when: tomcat_status.stdout != "0" + +- name: Start del tomcat + ansible.builtin.command: + cmd: sudo su -c "/tomcat/{{ tomcat_name }}/bin/startup.sh" -s /bin/sh tomcat + +- name: Setup motd + ansible.builtin.template: + src: motd.j2 + dest: /etc/motd + owner: root + group: root + mode: '0644' + +- name: Stampo a video un messaggio + ansible.builtin.debug: + msg: "Per testare chiamare via browser il seguente URL: http://10.248.44.78/SampleWebApp/SnoopServlet" + run_once: true diff --git a/10_roles/progetto_esempio2/roles/tomcat/templates/motd.j2 b/10_roles/progetto_esempio2/roles/tomcat/templates/motd.j2 new file mode 100644 index 0000000..dc00012 --- /dev/null +++ b/10_roles/progetto_esempio2/roles/tomcat/templates/motd.j2 @@ -0,0 +1,8 @@ +########################################################################## + + AS {{ ansible_hostname }} + +Tomcat shutdown HTTP jdk +/tomcat/{{ tomcat_name }} 8005 8080 {{ jdk }} + +########################################################################## diff --git a/10_roles/progetto_esempio2/roles/tomcat/templates/setenv.sh.j2 b/10_roles/progetto_esempio2/roles/tomcat/templates/setenv.sh.j2 new file mode 100644 index 0000000..186d486 --- /dev/null +++ b/10_roles/progetto_esempio2/roles/tomcat/templates/setenv.sh.j2 @@ -0,0 +1,9 @@ +### Opzioni cup2000 +export UMASK="0022" +export CATALINA_BASE=/tomcat/{{ tomcat_name }} +export CATALINA_HOME=/tomcat/{{ tomcat_name }} +export CATALINA_TMPDIR=$CATALINA_HOME/temp +export CATALINA_PID=$CATALINA_HOME/tomcat.pid +export JAVA_HOME="/opt/{{ jdk }}" +export JAVA_OPTS="-server -Djava.awt.headless=true -Xms1024m -Xmx1024m" +export CATALINA_OPTS="$CATALINA_OPTS -Duser.timezone=Europe/Rome -Duser.country=IT -Duser.language=it" diff --git a/10_roles/progetto_esempio2/runner.yaml b/10_roles/progetto_esempio2/runner.yaml new file mode 100644 index 0000000..bd3544f --- /dev/null +++ b/10_roles/progetto_esempio2/runner.yaml @@ -0,0 +1,12 @@ +--- +- name: Setup lbr Apache + hosts: lbr + roles: + - role: apache + tags: apache + +- name: Setup tomcats + hosts: as + roles: + - role: tomcat + tags: tomcat