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 0000000..1545caf Binary files /dev/null and b/10_roles/progetto_esempio2/roles/tomcat/files/SampleWebApp.war differ 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