From b49844bb10de0ec85fc5c1e9a56a00948ba34ab1 Mon Sep 17 00:00:00 2001 From: Savitha Raghunathan Date: Wed, 29 Nov 2023 19:20:58 +0530 Subject: [PATCH 1/9] adding initial kyma app deploy infra --- ec2/roles/kyma_infra/.travis.yml | 29 +++++++++ ec2/roles/kyma_infra/README.md | 38 +++++++++++ ec2/roles/kyma_infra/defaults/main.yml | 15 +++++ ec2/roles/kyma_infra/handlers/main.yml | 2 + ec2/roles/kyma_infra/meta/main.yml | 52 +++++++++++++++ ec2/roles/kyma_infra/tasks/install-mvn.yml | 40 ++++++++++++ .../kyma_infra/tasks/java-app-deploy.yml | 63 +++++++++++++++++++ ec2/roles/kyma_infra/tasks/main.yml | 22 +++++++ ec2/roles/kyma_infra/tasks/pre-req.yml | 54 ++++++++++++++++ .../kyma_infra/tasks/quarkus-app-deploy.yml | 28 +++++++++ .../kyma_infra/tasks/quarkus-podman-setup.yml | 46 ++++++++++++++ ec2/roles/kyma_infra/tests/inventory | 2 + ec2/roles/kyma_infra/tests/test.yml | 5 ++ ec2/roles/kyma_infra/vars/main.yml | 2 + 14 files changed, 398 insertions(+) create mode 100644 ec2/roles/kyma_infra/.travis.yml create mode 100644 ec2/roles/kyma_infra/README.md create mode 100644 ec2/roles/kyma_infra/defaults/main.yml create mode 100644 ec2/roles/kyma_infra/handlers/main.yml create mode 100644 ec2/roles/kyma_infra/meta/main.yml create mode 100644 ec2/roles/kyma_infra/tasks/install-mvn.yml create mode 100644 ec2/roles/kyma_infra/tasks/java-app-deploy.yml create mode 100644 ec2/roles/kyma_infra/tasks/main.yml create mode 100644 ec2/roles/kyma_infra/tasks/pre-req.yml create mode 100644 ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml create mode 100644 ec2/roles/kyma_infra/tasks/quarkus-podman-setup.yml create mode 100644 ec2/roles/kyma_infra/tests/inventory create mode 100644 ec2/roles/kyma_infra/tests/test.yml create mode 100644 ec2/roles/kyma_infra/vars/main.yml diff --git a/ec2/roles/kyma_infra/.travis.yml b/ec2/roles/kyma_infra/.travis.yml new file mode 100644 index 0000000..36bbf62 --- /dev/null +++ b/ec2/roles/kyma_infra/.travis.yml @@ -0,0 +1,29 @@ +--- +language: python +python: "2.7" + +# Use the new container infrastructure +sudo: false + +# Install ansible +addons: + apt: + packages: + - python-pip + +install: + # Install ansible + - pip install ansible + + # Check ansible version + - ansible --version + + # Create ansible.cfg with correct roles_path + - printf '[defaults]\nroles_path=../' >ansible.cfg + +script: + # Basic role syntax check + - ansible-playbook tests/test.yml -i tests/inventory --syntax-check + +notifications: + webhooks: https://galaxy.ansible.com/api/v1/notifications/ \ No newline at end of file diff --git a/ec2/roles/kyma_infra/README.md b/ec2/roles/kyma_infra/README.md new file mode 100644 index 0000000..225dd44 --- /dev/null +++ b/ec2/roles/kyma_infra/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +A brief description of the role goes here. + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. + +Dependencies +------------ + +A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. + +Example Playbook +---------------- + +Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: + + - hosts: servers + roles: + - { role: username.rolename, x: 42 } + +License +------- + +BSD + +Author Information +------------------ + +An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/ec2/roles/kyma_infra/defaults/main.yml b/ec2/roles/kyma_infra/defaults/main.yml new file mode 100644 index 0000000..5e239a2 --- /dev/null +++ b/ec2/roles/kyma_infra/defaults/main.yml @@ -0,0 +1,15 @@ +--- +# defaults file for kyma_infra +--- +# defaults file for jboss-app-deploy + +maven_deploy: false +app_path: . +app_name: helloworld +git_url: +javaee_git_branch: javaee +quarkus_git_branch: quarkus +jboss_install_home: /opt/jboss-eap +jboss_owner: jboss-eap +jboss_group: jboss-eap + diff --git a/ec2/roles/kyma_infra/handlers/main.yml b/ec2/roles/kyma_infra/handlers/main.yml new file mode 100644 index 0000000..984c11a --- /dev/null +++ b/ec2/roles/kyma_infra/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for kyma_infra diff --git a/ec2/roles/kyma_infra/meta/main.yml b/ec2/roles/kyma_infra/meta/main.yml new file mode 100644 index 0000000..c572acc --- /dev/null +++ b/ec2/roles/kyma_infra/meta/main.yml @@ -0,0 +1,52 @@ +galaxy_info: + author: your name + description: your role description + company: your company (optional) + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Choose a valid license ID from https://spdx.org - some suggested licenses: + # - BSD-3-Clause (default) + # - MIT + # - GPL-2.0-or-later + # - GPL-3.0-only + # - Apache-2.0 + # - CC-BY-4.0 + license: license (GPL-2.0-or-later, MIT, etc) + + min_ansible_version: 2.1 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + # + # Provide a list of supported platforms, and for each platform a list of versions. + # If you don't wish to enumerate all versions for a particular platform, use 'all'. + # To view available platforms and versions (or releases), visit: + # https://galaxy.ansible.com/api/v1/platforms/ + # + # platforms: + # - name: Fedora + # versions: + # - all + # - 25 + # - name: SomePlatform + # versions: + # - all + # - 1.0 + # - 7 + # - 99.99 + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. diff --git a/ec2/roles/kyma_infra/tasks/install-mvn.yml b/ec2/roles/kyma_infra/tasks/install-mvn.yml new file mode 100644 index 0000000..03f8fe7 --- /dev/null +++ b/ec2/roles/kyma_infra/tasks/install-mvn.yml @@ -0,0 +1,40 @@ +--- +- tasks: + - name: Download Apache Maven + get_url: + url: "https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz" + dest: "/home/fedora/apache-maven-3.9.4-bin.tar.gz" + + - name: Extract Maven archive + ansible.builtin.unarchive: + src: "/home/fedora/apache-maven-3.9.4-bin.tar.gz" + dest: "/home/fedora/" + remote_src: true + + - name: Set Maven environment variables + ansible.builtin.lineinfile: + path: "/home/fedora/.bashrc" + line: | + export MAVEN_HOME=/home/fedora/apache-maven-3.9.4 + export PATH=$MAVEN_HOME/bin:$PATH + become_user: fedora + + - name: Reload shell to apply changes + command: "source /home/fedora/.bashrc" + args: + executable: /bin/bash + become_user: fedora + +# register this output to a variable + - name: Check Maven version + command: "mvn -v" + args: + chdir: "/home/fedora/" + become_user: fedora + register: mvn_output + +# print the mvn version + - name: Display Maven version + debug: + var: mvn_output.stdout_lines + when: mvn_output.rc == 0 diff --git a/ec2/roles/kyma_infra/tasks/java-app-deploy.yml b/ec2/roles/kyma_infra/tasks/java-app-deploy.yml new file mode 100644 index 0000000..3e910fd --- /dev/null +++ b/ec2/roles/kyma_infra/tasks/java-app-deploy.yml @@ -0,0 +1,63 @@ +--- +# check if java is installed and print version usimd debug module +- name: Check if Java is installed + ansible.builtin.command: + cmd: java -version + ignore_errors: true + register: java_output + +- name: Display Java version + debug: + var: java_output.stdout_lines + when: java_output.rc == 0 + +- name: Check if Maven is installed + ansible.builtin.command: + cmd: mvn --version + ignore_errors: true + register: mvn_output + +- name: Display Maven version + debug: + var: mvn_output.stdout_lines + when: mvn_output.rc == 0 + +- name: when Maven is not installed + debug: + msg: "Maven is not installed on the target machine." + when: mvn_output.rc != 0 + + +- name: Clone the Java EE application + ansible.builtin.git: + repo: "{{ git_url }}" + dest: "/home/fedora/" + version: "{{ javaee_git_branch }}" + +- name: Deploy the application with Maven to EAP + ansible.builtin.shell: mvn clean package + args: + chdir: "/home/fedora/{{ app_name }}" + +# check if war file is presenr in {{ local_path.stat.path }}/{{ app_name }}/target/ +- name: Check if war file is present + ansible.builtin.stat: + path: "/home/fedora/{{ app_name }}/target/{{ app_name }}.war" + register: warfile + +# print the result of war file check +- name: Display war file status + debug: + var: warfile.stat.exists + +- name: Deploy the application with Maven to EAP + ansible.builtin.copy: + src: "/home/fedora/{{ app_name }}/target/{{ app_name }}.war" + dest: "{{ jboss_install_home }}/deployments/" + remote_src: yes + owner: "{{ jboss_owner }}" + group: "{{ jboss_group }}" + mode: '0644' + become: true + +# todo verify url \ No newline at end of file diff --git a/ec2/roles/kyma_infra/tasks/main.yml b/ec2/roles/kyma_infra/tasks/main.yml new file mode 100644 index 0000000..e25c095 --- /dev/null +++ b/ec2/roles/kyma_infra/tasks/main.yml @@ -0,0 +1,22 @@ +--- +# tasks file for kyma_infra + +- name: Include tasks from prereq.yaml + include_tasks: prereq.yaml + +- name: Configure Maven + include_tasks: configure_maven.yaml + +- name: include roles jboss-eap + include_role: + name: jboss-eap + tasks_from: main.yml + +- name: Deploy Java EE application + include_tasks: java-app-deploy.yaml + +- name: setup quarkus env + include_tasks: quarkus-podman-setup.yaml + +- name: Deploy Quarkus application + include_tasks: quarkus-app-deploy.yaml \ No newline at end of file diff --git a/ec2/roles/kyma_infra/tasks/pre-req.yml b/ec2/roles/kyma_infra/tasks/pre-req.yml new file mode 100644 index 0000000..eee5cec --- /dev/null +++ b/ec2/roles/kyma_infra/tasks/pre-req.yml @@ -0,0 +1,54 @@ +--- +- name: Install necessary packages + dnf: + name: "{{ item }}" + state: present + with_items: + - git + - zip + - podman + - wget + - quarkus + +- name: Install SDKMAN + command: "curl -s 'https://get.sdkman.io' | bash creates=/home/fedora/.sdkman" + +- name: Source SDKMAN initialization script + shell: "source /home/fedora/.sdkman/bin/sdkman-init.sh" + args: + executable: /bin/bash + environment: + PATH: "{{ ansible_env.PATH }}:/home/fedora/.sdkman/candidates/java/current/bin" + +# check if java is installed +- name: Check if java is installed + command: "java -version" + register: java_version + ignore_errors: true + +# display output of java -version + +- name: Display java version + debug: var=java_version.stdout_lines + +# install java 8.0.392-tem (Temurin) +- name: Install Java 8.0.392-tem + command: "sdk install java 8.0.392-tem" + +- name: Make Java 8.0.392-tem default + command: "sdk default java 8.0.392-tem" + +- name: Add sdk use java 8.0.392-tem + command: "sdk use java 8.0.392-tem" + +# check java version +- name: Check if java is installed + command: "java -version" + register: java_version + ignore_errors: true + +# print java version and add a console statement that says sdk instal +- name: Display java version + debug: var=java_version.stdout_lines + + diff --git a/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml b/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml new file mode 100644 index 0000000..4f83d72 --- /dev/null +++ b/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml @@ -0,0 +1,28 @@ +- tasks: + +# chdir to /home/fedora/{{app_name}} + - name: chdir to /home/fedora/{{app_name}} + ansible.builtin.shell: cd /home/fedora/{{app_name}} + args: + chdir: /home/fedora/{{app_name}} + +# checkout quarkus branch and track it - git checkout remotes/origin/quarkus --track + - name: checkout quarkus branch and track it + ansible.builtin.shell: git checkout remotes/origin/quarkus --track + args: + chdir: /home/fedora/{{app_name}} + +# build the quarkus app - mvn clean package + - name: build the quarkus app + ansible.builtin.shell: mvn clean package + args: + chdir: /home/fedora/{{app_name}} + +# Run the quarkus app locally + - name: Run mvn clean quarkus:dev -Dquarkus.http.port=8085 + ansible.builtin.shell: mvn clean quarkus:dev -Dquarkus.http.port=8085 + args: + chdir: /home/fedora/{{app_name}} + + + diff --git a/ec2/roles/kyma_infra/tasks/quarkus-podman-setup.yml b/ec2/roles/kyma_infra/tasks/quarkus-podman-setup.yml new file mode 100644 index 0000000..4b7bf71 --- /dev/null +++ b/ec2/roles/kyma_infra/tasks/quarkus-podman-setup.yml @@ -0,0 +1,46 @@ +--- +- tasks: + - name: Install Java 11.0.21-tem + command: "sdk install java 11.0.21-tem" + + - name: Use Java 11.0.21-tem + command: "sdk use java 11.0.21-tem" + + - name: Check Maven version + command: "mvn -v" + register: maven_version + + - name: Display Maven version + debug: + var: maven_version.stdout_lines + + - name: Enable and start Podman socket + command: "systemctl --user enable podman.socket --now" + + + - name: Start Podman service + command: "sudo service podman start" + become: true + + - name: Check Podman service status + command: "service podman status" + + - name: Display Podman remote socket information + command: "podman info | grep -A2 'remoteSocket'" + register: podman_info + + - name: Display Podman remote socket information info + debug: + var: podman_info.stdout_lines + + - name: Set environment variables for Podman + ansible.builtin.lineinfile: + path: "/home/fedora/.bashrc" + line: | + export DOCKER_HOST=unix:///run/user/1000/podman/podman.sock + export TESTCONTAINERS_RYUK_DISABLED=true + + - name: Reload shell to apply changes + command: "source /home/fedora/.bashrc" + args: + executable: /bin/bash diff --git a/ec2/roles/kyma_infra/tests/inventory b/ec2/roles/kyma_infra/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/ec2/roles/kyma_infra/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/ec2/roles/kyma_infra/tests/test.yml b/ec2/roles/kyma_infra/tests/test.yml new file mode 100644 index 0000000..6c5d789 --- /dev/null +++ b/ec2/roles/kyma_infra/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - kyma_infra diff --git a/ec2/roles/kyma_infra/vars/main.yml b/ec2/roles/kyma_infra/vars/main.yml new file mode 100644 index 0000000..f563c1f --- /dev/null +++ b/ec2/roles/kyma_infra/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for kyma_infra From 127a800367634766f462671c914feb0dfd2e9d43 Mon Sep 17 00:00:00 2001 From: Savitha Raghunathan Date: Thu, 30 Nov 2023 19:04:05 +0530 Subject: [PATCH 2/9] fixing errors --- ec2/roles/jboss-eap/tasks/main.yml | 6 +- ec2/roles/kyma_infra/defaults/main.yml | 7 +- ec2/roles/kyma_infra/tasks/install-mvn.yml | 64 ++++++------ .../kyma_infra/tasks/java-app-deploy.yml | 2 +- ec2/roles/kyma_infra/tasks/main.yml | 13 ++- ec2/roles/kyma_infra/tasks/pre-req.yml | 52 ++++++---- .../kyma_infra/tasks/quarkus-app-deploy.yml | 35 ++++--- .../kyma_infra/tasks/quarkus-podman-setup.yml | 99 ++++++++++--------- ec2/setup_kyma_infra.sh | 1 + ec2/setup_kyma_infra.yml | 9 ++ 10 files changed, 159 insertions(+), 129 deletions(-) create mode 100755 ec2/setup_kyma_infra.sh create mode 100644 ec2/setup_kyma_infra.yml diff --git a/ec2/roles/jboss-eap/tasks/main.yml b/ec2/roles/jboss-eap/tasks/main.yml index 2a73017..e33cf78 100644 --- a/ec2/roles/jboss-eap/tasks/main.yml +++ b/ec2/roles/jboss-eap/tasks/main.yml @@ -8,7 +8,7 @@ wildfly_archive_filename: "{{ install_name }}-{{ wildfly_version }}.zip" wildfly_user: "{{ install_name }}" wildfly_group: "{{ install_name }}" - wildfly_config_base: standalone.xml + wildfly_config_base: standalone-full.xml wildfly_home: "{{ wildfly_install_workdir }}/{{ install_name }}-{{ 7.4 }}" wildfly_offline_install: true include_role: @@ -17,7 +17,7 @@ - name: "enable service" vars: - wildfly_config_base: 'standalone.xml' + wildfly_config_base: 'standalone-full.xml' install_name: jboss-eap wildfly_basedir_prefix: "/opt/{{ install_name }}" wildfly_config_name: "{{ install_name }}" @@ -51,4 +51,4 @@ register: out - name: "INFO: Display localhost:8080 content" - debug: var=out.stdout_lines \ No newline at end of file + debug: var=out.stdout_lines diff --git a/ec2/roles/kyma_infra/defaults/main.yml b/ec2/roles/kyma_infra/defaults/main.yml index 5e239a2..caba9d1 100644 --- a/ec2/roles/kyma_infra/defaults/main.yml +++ b/ec2/roles/kyma_infra/defaults/main.yml @@ -1,12 +1,9 @@ --- # defaults file for kyma_infra ---- -# defaults file for jboss-app-deploy - maven_deploy: false app_path: . -app_name: helloworld -git_url: +app_name: helloworld-mdb +git_url: https://github.com/savitharaghunathan/helloworld-mdb.git javaee_git_branch: javaee quarkus_git_branch: quarkus jboss_install_home: /opt/jboss-eap diff --git a/ec2/roles/kyma_infra/tasks/install-mvn.yml b/ec2/roles/kyma_infra/tasks/install-mvn.yml index 03f8fe7..9f559e1 100644 --- a/ec2/roles/kyma_infra/tasks/install-mvn.yml +++ b/ec2/roles/kyma_infra/tasks/install-mvn.yml @@ -1,40 +1,40 @@ --- -- tasks: - - name: Download Apache Maven - get_url: - url: "https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz" - dest: "/home/fedora/apache-maven-3.9.4-bin.tar.gz" +- name: Download Apache Maven + get_url: + url: "https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz" + dest: "/home/fedora/apache-maven-3.9.4-bin.tar.gz" - - name: Extract Maven archive - ansible.builtin.unarchive: - src: "/home/fedora/apache-maven-3.9.4-bin.tar.gz" - dest: "/home/fedora/" - remote_src: true +- name: Extract Maven archive + ansible.builtin.unarchive: + src: "/home/fedora/apache-maven-3.9.4-bin.tar.gz" + dest: "/home/fedora/" + remote_src: true - - name: Set Maven environment variables - ansible.builtin.lineinfile: - path: "/home/fedora/.bashrc" - line: | - export MAVEN_HOME=/home/fedora/apache-maven-3.9.4 - export PATH=$MAVEN_HOME/bin:$PATH - become_user: fedora +- name: Set Maven environment variables + ansible.builtin.lineinfile: + path: "/home/fedora/.bashrc" + line: | + export MAVEN_HOME=/home/fedora/apache-maven-3.9.4 + export PATH=$MAVEN_HOME/bin:$PATH + become_user: fedora - - name: Reload shell to apply changes - command: "source /home/fedora/.bashrc" - args: - executable: /bin/bash - become_user: fedora +- name: Load Maven environment variables for the current session + ansible.builtin.shell: source /home/fedora/.bashrc + args: + executable: /bin/bash + environment: + PATH: "{{ ansible_env.PATH }}" # register this output to a variable - - name: Check Maven version - command: "mvn -v" - args: - chdir: "/home/fedora/" - become_user: fedora - register: mvn_output +- name: Check Maven version + command: "mvn -v" + args: + chdir: "/home/fedora/" + become_user: fedora + register: mvn_output # print the mvn version - - name: Display Maven version - debug: - var: mvn_output.stdout_lines - when: mvn_output.rc == 0 +- name: Display Maven version + debug: + var: mvn_output.stdout_lines + when: mvn_output.rc == 0 diff --git a/ec2/roles/kyma_infra/tasks/java-app-deploy.yml b/ec2/roles/kyma_infra/tasks/java-app-deploy.yml index 3e910fd..163aef9 100644 --- a/ec2/roles/kyma_infra/tasks/java-app-deploy.yml +++ b/ec2/roles/kyma_infra/tasks/java-app-deploy.yml @@ -31,7 +31,7 @@ - name: Clone the Java EE application ansible.builtin.git: repo: "{{ git_url }}" - dest: "/home/fedora/" + dest: "/home/fedora/{{ app_name }}" version: "{{ javaee_git_branch }}" - name: Deploy the application with Maven to EAP diff --git a/ec2/roles/kyma_infra/tasks/main.yml b/ec2/roles/kyma_infra/tasks/main.yml index e25c095..f5b23b9 100644 --- a/ec2/roles/kyma_infra/tasks/main.yml +++ b/ec2/roles/kyma_infra/tasks/main.yml @@ -1,11 +1,10 @@ ---- -# tasks file for kyma_infra + - name: Include tasks from prereq.yaml - include_tasks: prereq.yaml + include_tasks: pre-req.yml - name: Configure Maven - include_tasks: configure_maven.yaml + include_tasks: install-mvn.yml - name: include roles jboss-eap include_role: @@ -13,10 +12,10 @@ tasks_from: main.yml - name: Deploy Java EE application - include_tasks: java-app-deploy.yaml + include_tasks: java-app-deploy.yml - name: setup quarkus env - include_tasks: quarkus-podman-setup.yaml + include_tasks: quarkus-podman-setup.yml - name: Deploy Quarkus application - include_tasks: quarkus-app-deploy.yaml \ No newline at end of file + include_tasks: quarkus-app-deploy.yml \ No newline at end of file diff --git a/ec2/roles/kyma_infra/tasks/pre-req.yml b/ec2/roles/kyma_infra/tasks/pre-req.yml index eee5cec..8583cb5 100644 --- a/ec2/roles/kyma_infra/tasks/pre-req.yml +++ b/ec2/roles/kyma_infra/tasks/pre-req.yml @@ -1,6 +1,7 @@ --- - name: Install necessary packages - dnf: + become: true + ansible.builtin.dnf: name: "{{ item }}" state: present with_items: @@ -8,17 +9,6 @@ - zip - podman - wget - - quarkus - -- name: Install SDKMAN - command: "curl -s 'https://get.sdkman.io' | bash creates=/home/fedora/.sdkman" - -- name: Source SDKMAN initialization script - shell: "source /home/fedora/.sdkman/bin/sdkman-init.sh" - args: - executable: /bin/bash - environment: - PATH: "{{ ansible_env.PATH }}:/home/fedora/.sdkman/candidates/java/current/bin" # check if java is installed - name: Check if java is installed @@ -30,16 +20,40 @@ - name: Display java version debug: var=java_version.stdout_lines + when: java_version.rc != 0 + -# install java 8.0.392-tem (Temurin) -- name: Install Java 8.0.392-tem - command: "sdk install java 8.0.392-tem" +- name: Check if SDKMAN is Installed + command: "which sdk" + register: sdk_check + ignore_errors: true -- name: Make Java 8.0.392-tem default - command: "sdk default java 8.0.392-tem" +- name: Print SDKMAN Installation Status + debug: + msg: "SDKMAN is {{ 'installed' if sdk_check.rc == 0 else 'not installed' }}" -- name: Add sdk use java 8.0.392-tem - command: "sdk use java 8.0.392-tem" +- name: Download and install SDKMAN + shell: "curl -s 'https://get.sdkman.io' | bash" + args: + creates: "/home/fedora/.sdkman" + when: sdk_check.rc != 0 + +- name: Add SDKMAN initialization to ~/.bashrc + ansible.builtin.lineinfile: + path: "/home/fedora/.bashrc" + line: "source $HOME/.sdkman/bin/sdkman-init.sh" + when: sdk_check.rc != 0 + +- name: Source SDKMAN initialization script and install Java 8.0.392-tem + shell: | + source /home/fedora/.sdkman/bin/sdkman-init.sh + sdk install java 8.0.392-tem + sdk default java 8.0.392-tem + sdk use java 8.0.392-tem + args: + executable: /bin/bash + environment: + HOME: "/home/fedora" # check java version - name: Check if java is installed diff --git a/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml b/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml index 4f83d72..8144787 100644 --- a/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml +++ b/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml @@ -1,28 +1,27 @@ -- tasks: - +--- # chdir to /home/fedora/{{app_name}} - - name: chdir to /home/fedora/{{app_name}} - ansible.builtin.shell: cd /home/fedora/{{app_name}} - args: - chdir: /home/fedora/{{app_name}} +- name: chdir to /home/fedora/{{app_name}} + ansible.builtin.shell: cd /home/fedora/{{app_name}} + args: + chdir: /home/fedora/{{app_name}} # checkout quarkus branch and track it - git checkout remotes/origin/quarkus --track - - name: checkout quarkus branch and track it - ansible.builtin.shell: git checkout remotes/origin/quarkus --track - args: - chdir: /home/fedora/{{app_name}} +- name: checkout quarkus branch and track it + ansible.builtin.shell: git checkout remotes/origin/{{ quarkus_git_branch }} --track + args: + chdir: /home/fedora/{{app_name}} # build the quarkus app - mvn clean package - - name: build the quarkus app - ansible.builtin.shell: mvn clean package - args: - chdir: /home/fedora/{{app_name}} +- name: build the quarkus app + ansible.builtin.shell: mvn clean package + args: + chdir: /home/fedora/{{app_name}} # Run the quarkus app locally - - name: Run mvn clean quarkus:dev -Dquarkus.http.port=8085 - ansible.builtin.shell: mvn clean quarkus:dev -Dquarkus.http.port=8085 - args: - chdir: /home/fedora/{{app_name}} +- name: Run mvn clean quarkus:dev -Dquarkus.http.port=8085 + ansible.builtin.shell: mvn clean quarkus:dev -Dquarkus.http.port=8085 + args: + chdir: /home/fedora/{{app_name}} diff --git a/ec2/roles/kyma_infra/tasks/quarkus-podman-setup.yml b/ec2/roles/kyma_infra/tasks/quarkus-podman-setup.yml index 4b7bf71..975d408 100644 --- a/ec2/roles/kyma_infra/tasks/quarkus-podman-setup.yml +++ b/ec2/roles/kyma_infra/tasks/quarkus-podman-setup.yml @@ -1,46 +1,57 @@ --- -- tasks: - - name: Install Java 11.0.21-tem - command: "sdk install java 11.0.21-tem" - - - name: Use Java 11.0.21-tem - command: "sdk use java 11.0.21-tem" - - - name: Check Maven version - command: "mvn -v" - register: maven_version - - - name: Display Maven version - debug: - var: maven_version.stdout_lines - - - name: Enable and start Podman socket - command: "systemctl --user enable podman.socket --now" - - - - name: Start Podman service - command: "sudo service podman start" - become: true - - - name: Check Podman service status - command: "service podman status" - - - name: Display Podman remote socket information - command: "podman info | grep -A2 'remoteSocket'" - register: podman_info - - - name: Display Podman remote socket information info - debug: - var: podman_info.stdout_lines - - - name: Set environment variables for Podman - ansible.builtin.lineinfile: - path: "/home/fedora/.bashrc" - line: | - export DOCKER_HOST=unix:///run/user/1000/podman/podman.sock - export TESTCONTAINERS_RYUK_DISABLED=true + +- name: Source SDKMAN initialization script and install Java 11.0.21-tem + shell: | + source /home/fedora/.sdkman/bin/sdkman-init.sh + sdk install java 11.0.21-tem + sdk default java 11.0.21-tem + sdk use java 11.0.21-tem + sdk install quarkus + args: + executable: /bin/bash + environment: + HOME: "/home/fedora" + +- name: Check Maven version + command: "mvn -v" + register: maven_version + +- name: Display Maven version + debug: + var: maven_version.stdout_lines + +- name: Enable and start Podman socket + command: "systemctl --user enable podman.socket --now" + + +- name: Start Podman service + command: "sudo service podman start" + become: true + +- name: Check Podman service status + command: "service podman status" + +- name: Display Podman remote socket information + shell: "podman info | grep -A2 'remoteSocket'" + become: true + register: podman_info - - name: Reload shell to apply changes - command: "source /home/fedora/.bashrc" - args: - executable: /bin/bash + +- name: Show Podman info result + debug: + var: podman_info.stdout_lines + + +- name: Set environment variables for Podman + ansible.builtin.lineinfile: + path: "/home/fedora/.bashrc" + line: | + export DOCKER_HOST=unix:///run/user/1000/podman/podman.sock + export TESTCONTAINERS_RYUK_DISABLED=true + +- name: Load Podman environment variables for the current session + ansible.builtin.shell: source /home/fedora/.bashrc + args: + executable: /bin/bash + environment: + PATH: "{{ ansible_env.PATH }}" \ No newline at end of file diff --git a/ec2/setup_kyma_infra.sh b/ec2/setup_kyma_infra.sh new file mode 100755 index 0000000..2ef583d --- /dev/null +++ b/ec2/setup_kyma_infra.sh @@ -0,0 +1 @@ +ansible-playbook -vvv -i my_hosts.aws_ec2.yml setup_kyma_infra.yml --extra-vars "@my_vars.yml" \ No newline at end of file diff --git a/ec2/setup_kyma_infra.yml b/ec2/setup_kyma_infra.yml new file mode 100644 index 0000000..5443978 --- /dev/null +++ b/ec2/setup_kyma_infra.yml @@ -0,0 +1,9 @@ +--- + - name: "Run tasks to setup kyma_infra" + hosts: "role_{{ project_tag }}_node" + roles: + # See Role's readme for more info + - role: kyma_infra + # intended to run as 'fedora' user, so no on 'become' + become: no + \ No newline at end of file From 50587e68c65bac31443d61f02f953616be98ec92 Mon Sep 17 00:00:00 2001 From: Savitha Raghunathan Date: Sat, 2 Dec 2023 16:23:01 +0530 Subject: [PATCH 3/9] adding kyma infra with docker --- .../jboss-app-deploy/tasks/mvn-deploy.yml | 2 - ec2/roles/kyma_infra/README.md | 65 ++++++++++--------- ec2/roles/kyma_infra/tasks/install-docker.yml | 47 ++++++++++++++ ec2/roles/kyma_infra/tasks/main.yml | 5 +- ec2/roles/kyma_infra/tasks/pre-req.yml | 1 - .../kyma_infra/tasks/quarkus-app-deploy.yml | 1 + .../kyma_infra/tasks/quarkus-podman-setup.yml | 57 ---------------- ec2/roles/kyma_infra/tasks/quarkus-setup.yml | 21 ++++++ ec2/setup_kyma_infra.sh | 2 +- 9 files changed, 108 insertions(+), 93 deletions(-) create mode 100644 ec2/roles/kyma_infra/tasks/install-docker.yml delete mode 100644 ec2/roles/kyma_infra/tasks/quarkus-podman-setup.yml create mode 100644 ec2/roles/kyma_infra/tasks/quarkus-setup.yml diff --git a/ec2/roles/jboss-app-deploy/tasks/mvn-deploy.yml b/ec2/roles/jboss-app-deploy/tasks/mvn-deploy.yml index f5fe5c5..0cdb5b3 100644 --- a/ec2/roles/jboss-app-deploy/tasks/mvn-deploy.yml +++ b/ec2/roles/jboss-app-deploy/tasks/mvn-deploy.yml @@ -1,6 +1,4 @@ --- - - - name: Check if Maven is installed ansible.builtin.command: cmd: mvn --version diff --git a/ec2/roles/kyma_infra/README.md b/ec2/roles/kyma_infra/README.md index 225dd44..70788e7 100644 --- a/ec2/roles/kyma_infra/README.md +++ b/ec2/roles/kyma_infra/README.md @@ -1,38 +1,41 @@ Role Name ========= -A brief description of the role goes here. +Installs java11 and java8 on a Fedora server that can be used with Quarkus and EAP app deployment respectively. Requirements ------------ -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. - -Role Variables --------------- - -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. - -Dependencies ------------- - -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. - -Example Playbook ----------------- - -Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: - - - hosts: servers - roles: - - { role: username.rolename, x: 42 } - -License -------- - -BSD - -Author Information ------------------- - -An optional section for the role authors to include contact information, or a website (HTML is not allowed). +Provision the fedora server using ./create_infra.sh. Please refer to the [readme](../README.md) + +How to Run +---------- + +* cd ../ +* Run `./setup_kyma_infra.sh` + +Background +------------- + +* Infra setup: + * Server: fedora 38 + * docker-ce + * EAP 7.4 using java 8 + * EAP running on port 8080 + * Quarkus using java 11 + * Quarkus running on port 8085 + * Java versions and quarkus installations are managed by sdkman + * manual maven install + * uses roles from migtools/playpen repo to create ec2 instance and configure eap + * note: eap should use standalonefull config + * created a new role called kyma_infra - https://github.com/migtools/playpen/pull/5 + * run the role using the script ./setup_kyma_infra.sh + * Manual run down : https://hackmd.io/H04eYLdSS82wt8Ryh8UOSQ + +Todo: +------ +* refactor java installation + * Take input of java versions and install that using sdkman +* Run quarkus in prod mode +* Note: wildfly role overrides java8 installed by sdkman. Refactor wildfly role to not install java, it is installed already +* \ No newline at end of file diff --git a/ec2/roles/kyma_infra/tasks/install-docker.yml b/ec2/roles/kyma_infra/tasks/install-docker.yml new file mode 100644 index 0000000..30e3ed6 --- /dev/null +++ b/ec2/roles/kyma_infra/tasks/install-docker.yml @@ -0,0 +1,47 @@ +- name: Install required packages + become: true + dnf: + name: "{{ item }}" + state: present + loop: + - dnf-plugins-core + +- name: Set up Docker repository + become: true + command: "dnf config-manager --add-repo=https://download.docker.com/linux/fedora/docker-ce.repo" + +- name: Install Docker + become: true + dnf: + name: "{{ item }}" + state: present + loop: + - docker-ce + - docker-ce-cli + - containerd.io + +- name: Start and enable Docker service + become: true + service: + name: docker + state: started + enabled: yes + +- name: Add user to the docker group + become: true + user: + name: "fedora" + groups: docker + append: yes + +# run command newgrp docker +- name: Run command newgrp docker + command: "newgrp docker" + +# restart docker service +- name: Restart docker service + become: true + service: + name: docker + state: restarted + diff --git a/ec2/roles/kyma_infra/tasks/main.yml b/ec2/roles/kyma_infra/tasks/main.yml index f5b23b9..9885dba 100644 --- a/ec2/roles/kyma_infra/tasks/main.yml +++ b/ec2/roles/kyma_infra/tasks/main.yml @@ -14,8 +14,11 @@ - name: Deploy Java EE application include_tasks: java-app-deploy.yml +- name: install docker ce + include_tasks: install-docker.yml + - name: setup quarkus env - include_tasks: quarkus-podman-setup.yml + include_tasks: quarkus-setup.yml - name: Deploy Quarkus application include_tasks: quarkus-app-deploy.yml \ No newline at end of file diff --git a/ec2/roles/kyma_infra/tasks/pre-req.yml b/ec2/roles/kyma_infra/tasks/pre-req.yml index 8583cb5..370aca6 100644 --- a/ec2/roles/kyma_infra/tasks/pre-req.yml +++ b/ec2/roles/kyma_infra/tasks/pre-req.yml @@ -7,7 +7,6 @@ with_items: - git - zip - - podman - wget # check if java is installed diff --git a/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml b/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml index 8144787..76a013f 100644 --- a/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml +++ b/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml @@ -5,6 +5,7 @@ args: chdir: /home/fedora/{{app_name}} + # checkout quarkus branch and track it - git checkout remotes/origin/quarkus --track - name: checkout quarkus branch and track it ansible.builtin.shell: git checkout remotes/origin/{{ quarkus_git_branch }} --track diff --git a/ec2/roles/kyma_infra/tasks/quarkus-podman-setup.yml b/ec2/roles/kyma_infra/tasks/quarkus-podman-setup.yml deleted file mode 100644 index 975d408..0000000 --- a/ec2/roles/kyma_infra/tasks/quarkus-podman-setup.yml +++ /dev/null @@ -1,57 +0,0 @@ ---- - -- name: Source SDKMAN initialization script and install Java 11.0.21-tem - shell: | - source /home/fedora/.sdkman/bin/sdkman-init.sh - sdk install java 11.0.21-tem - sdk default java 11.0.21-tem - sdk use java 11.0.21-tem - sdk install quarkus - args: - executable: /bin/bash - environment: - HOME: "/home/fedora" - -- name: Check Maven version - command: "mvn -v" - register: maven_version - -- name: Display Maven version - debug: - var: maven_version.stdout_lines - -- name: Enable and start Podman socket - command: "systemctl --user enable podman.socket --now" - - -- name: Start Podman service - command: "sudo service podman start" - become: true - -- name: Check Podman service status - command: "service podman status" - -- name: Display Podman remote socket information - shell: "podman info | grep -A2 'remoteSocket'" - become: true - register: podman_info - - -- name: Show Podman info result - debug: - var: podman_info.stdout_lines - - -- name: Set environment variables for Podman - ansible.builtin.lineinfile: - path: "/home/fedora/.bashrc" - line: | - export DOCKER_HOST=unix:///run/user/1000/podman/podman.sock - export TESTCONTAINERS_RYUK_DISABLED=true - -- name: Load Podman environment variables for the current session - ansible.builtin.shell: source /home/fedora/.bashrc - args: - executable: /bin/bash - environment: - PATH: "{{ ansible_env.PATH }}" \ No newline at end of file diff --git a/ec2/roles/kyma_infra/tasks/quarkus-setup.yml b/ec2/roles/kyma_infra/tasks/quarkus-setup.yml new file mode 100644 index 0000000..5b009fa --- /dev/null +++ b/ec2/roles/kyma_infra/tasks/quarkus-setup.yml @@ -0,0 +1,21 @@ +--- + +- name: Source SDKMAN initialization script and install Java 11.0.21-tem + shell: | + source /home/fedora/.sdkman/bin/sdkman-init.sh + sdk install java 11.0.21-tem + sdk default java 11.0.21-tem + sdk use java 11.0.21-tem + sdk install quarkus + args: + executable: /bin/bash + environment: + HOME: "/home/fedora" + +- name: Check Maven version + command: "mvn -v" + register: maven_version + +- name: Display Maven version + debug: + var: maven_version.stdout_lines diff --git a/ec2/setup_kyma_infra.sh b/ec2/setup_kyma_infra.sh index 2ef583d..6156d67 100755 --- a/ec2/setup_kyma_infra.sh +++ b/ec2/setup_kyma_infra.sh @@ -1 +1 @@ -ansible-playbook -vvv -i my_hosts.aws_ec2.yml setup_kyma_infra.yml --extra-vars "@my_vars.yml" \ No newline at end of file +ansible-playbook -v -i my_hosts.aws_ec2.yml setup_kyma_infra.yml --extra-vars "@my_vars.yml" \ No newline at end of file From 76713f1343891b2fc1cf2e0d8b48d110f712ee6e Mon Sep 17 00:00:00 2001 From: Savitha Raghunathan Date: Fri, 5 Jan 2024 14:55:53 -0500 Subject: [PATCH 4/9] adding docker check and cert hack --- .../kyma_infra/tasks/java-app-deploy.yml | 14 +++++++++ .../kyma_infra/tasks/quarkus-app-deploy.yml | 30 ++++++++++++++++--- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/ec2/roles/kyma_infra/tasks/java-app-deploy.yml b/ec2/roles/kyma_infra/tasks/java-app-deploy.yml index 163aef9..02ebae8 100644 --- a/ec2/roles/kyma_infra/tasks/java-app-deploy.yml +++ b/ec2/roles/kyma_infra/tasks/java-app-deploy.yml @@ -27,6 +27,20 @@ msg: "Maven is not installed on the target machine." when: mvn_output.rc != 0 +# Hack: to avoid ssl certificate error +- name: Download certificate from maven.repository.redhat.com + ansible.builtin.shell: "echo -n | openssl s_client -connect maven.repository.redhat.com:443 -servername maven.repository.redhat.com 2>/dev/null | openssl x509 > /tmp/maven_repository_redhat_com.cert" + +# Hack: to avoid ssl certificate error +- name: Check if certificate is already installed + ansible.builtin.shell: "keytool -list -alias mycert -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit" + ignore_errors: true + register: cert_check + +- name: Import certificate into Java keystore + ansible.builtin.shell: "keytool -import -alias mycert -keystore $JAVA_HOME/jre/lib/security/cacerts -file /tmp/maven_repository_redhat_com.cert -storepass changeit -noprompt" + when: cert_check.rc != 0 + - name: Clone the Java EE application ansible.builtin.git: diff --git a/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml b/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml index 76a013f..1e2672c 100644 --- a/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml +++ b/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml @@ -12,6 +12,19 @@ args: chdir: /home/fedora/{{app_name}} +- name: Check if Docker is accessible using socket + ansible.builtin.wait_for: + path: /var/run/docker.sock + state: present + timeout: 10 + ignore_errors: true + register: docker_socket_status + +- name: Display Docker socket status + ansible.builtin.debug: + var: docker_socket_status + + # build the quarkus app - mvn clean package - name: build the quarkus app ansible.builtin.shell: mvn clean package @@ -19,10 +32,19 @@ chdir: /home/fedora/{{app_name}} # Run the quarkus app locally -- name: Run mvn clean quarkus:dev -Dquarkus.http.port=8085 - ansible.builtin.shell: mvn clean quarkus:dev -Dquarkus.http.port=8085 +- name: Start the server + ansible.builtin.shell: "nohup mvn clean quarkus:dev -Dquarkus.http.port=8085 > server.log 2>&1 & echo $! > server.pid" args: - chdir: /home/fedora/{{app_name}} - + chdir: /home/fedora/{{ app_name }} + register: start_server_result +# check if quarkus app is running using pid +- name: Check if Quarkus app is running + ansible.builtin.shell: "ps -p $(cat server.pid) | grep -v PID" + args: + chdir: /home/fedora/{{ app_name }} + register: quarkus_app_running + until: quarkus_app_running.stdout != "" + retries: 10 + delay: 5 From af608dae608175f4e3826212b9e183c9903dfddb Mon Sep 17 00:00:00 2001 From: Savitha Raghunathan Date: Mon, 8 Jan 2024 09:57:38 -0500 Subject: [PATCH 5/9] add cleanup --- ec2/roles/kyma_infra/tasks/install-mvn.yml | 5 ++--- ec2/roles/kyma_infra/tasks/pre-req.yml | 11 +++++++++++ ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml | 3 ++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ec2/roles/kyma_infra/tasks/install-mvn.yml b/ec2/roles/kyma_infra/tasks/install-mvn.yml index 9f559e1..9750d47 100644 --- a/ec2/roles/kyma_infra/tasks/install-mvn.yml +++ b/ec2/roles/kyma_infra/tasks/install-mvn.yml @@ -13,9 +13,8 @@ - name: Set Maven environment variables ansible.builtin.lineinfile: path: "/home/fedora/.bashrc" - line: | - export MAVEN_HOME=/home/fedora/apache-maven-3.9.4 - export PATH=$MAVEN_HOME/bin:$PATH + line: "export MAVEN_HOME=/home/fedora/apache-maven-3.9.4; export PATH=$MAVEN_HOME/bin:$PATH" + regexp: "^export MAVEN_HOME=/home/fedora/apache-maven-3.9.4; export PATH=\\$MAVEN_HOME/bin:\\$PATH$" become_user: fedora - name: Load Maven environment variables for the current session diff --git a/ec2/roles/kyma_infra/tasks/pre-req.yml b/ec2/roles/kyma_infra/tasks/pre-req.yml index 370aca6..7699675 100644 --- a/ec2/roles/kyma_infra/tasks/pre-req.yml +++ b/ec2/roles/kyma_infra/tasks/pre-req.yml @@ -64,4 +64,15 @@ - name: Display java version debug: var=java_version.stdout_lines +- name: Check if the repository directory exists + ansible.builtin.stat: + path: "/home/fedora/{{ app_name }}" + register: app_repo + +# delete java app if the repo exists +- name: Delete the Java EE application if the repo exists + ansible.builtin.file: + path: "/home/fedora/{{ app_name }}" + state: absent + when: app_repo.stat.exists diff --git a/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml b/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml index 1e2672c..ae8e022 100644 --- a/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml +++ b/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml @@ -38,7 +38,8 @@ chdir: /home/fedora/{{ app_name }} register: start_server_result -# check if quarkus app is running using pid +# check if quarkus process is running using pid +# need a better way to check if quarkus app is running - name: Check if Quarkus app is running ansible.builtin.shell: "ps -p $(cat server.pid) | grep -v PID" args: From 8dda91b38c176912fd1a8a2222cb3bd9c79f613c Mon Sep 17 00:00:00 2001 From: Savitha Raghunathan Date: Tue, 16 Jan 2024 15:47:53 -0500 Subject: [PATCH 6/9] adding other example apps --- ec2/roles/kyma_infra/defaults/main.yml | 44 ++++++++++++-- ec2/roles/kyma_infra/files/postgres-config.sh | 3 + ec2/roles/kyma_infra/files/postgres.cli | 20 +++++++ ec2/roles/kyma_infra/tasks/install-docker.yml | 1 + .../tasks/java-app-deploy-prereq.yml | 57 +++++++++++++++++++ .../kyma_infra/tasks/java-app-deploy.yml | 11 ++-- ec2/roles/kyma_infra/tasks/main.yml | 5 +- ec2/roles/kyma_infra/tasks/pre-req.yml | 1 - .../kyma_infra/tasks/quarkus-app-deploy.yml | 37 ++++++++++-- ec2/roles/kyma_infra/tasks/quarkus-setup.yml | 9 +-- 10 files changed, 166 insertions(+), 22 deletions(-) create mode 100644 ec2/roles/kyma_infra/files/postgres-config.sh create mode 100644 ec2/roles/kyma_infra/files/postgres.cli create mode 100644 ec2/roles/kyma_infra/tasks/java-app-deploy-prereq.yml diff --git a/ec2/roles/kyma_infra/defaults/main.yml b/ec2/roles/kyma_infra/defaults/main.yml index caba9d1..273d5d6 100644 --- a/ec2/roles/kyma_infra/defaults/main.yml +++ b/ec2/roles/kyma_infra/defaults/main.yml @@ -1,12 +1,44 @@ --- # defaults file for kyma_infra -maven_deploy: false -app_path: . -app_name: helloworld-mdb -git_url: https://github.com/savitharaghunathan/helloworld-mdb.git -javaee_git_branch: javaee -quarkus_git_branch: quarkus + jboss_install_home: /opt/jboss-eap jboss_owner: jboss-eap jboss_group: jboss-eap +#helloworld-mdb +#maven_deploy: false +#app_path: . +#app_name: helloworld-mdb +#git_url: https://github.com/savitharaghunathan/helloworld-mdb.git +#local_app_path: /home/fedora/{{ app_name }} +#javaee_git_branch: javaee +#quarkus_git_branch: quarkus +#same_repo: true +#war_file_path: '{{ local_app_path }}/target/{{ app_name }}.war' +#quarkus_java_version: 11.0.21-tem + + +# kitchensink +maven_deploy: false +app_path: kitchensink +app_name: jboss-eap-quickstarts +local_app_path: /home/fedora/{{ app_name }}/{{ app_path }} +war_file_path: '{{ local_app_path }}/target/{{ app_path }}.war' +git_url: https://github.com/windup/jboss-eap-quickstarts.git +git_url_quarkus: https://github.com/tqvarnst/jboss-eap-quickstarts.git +javaee_git_branch: 7.4.x +quarkus_git_branch: quarkus-3.2 +same_repo: false +quarkus_java_version: 17.0.9-tem + +# coolstoredb +# maven_deploy: false +# app_path: . +# app_name: coolstoredb +# git_url: https://github.com/mathianasj/eap-coolstore-monolith +# local_app_path: /home/fedora/{{ app_name }} +# javaee_git_branch: main +# quarkus_git_branch: quarkus-migration +# same_repo: true +# war_file_path: '{{ local_app_path }}/ROOT.war' +# quarkus_java_version: 11.0.21-tem \ No newline at end of file diff --git a/ec2/roles/kyma_infra/files/postgres-config.sh b/ec2/roles/kyma_infra/files/postgres-config.sh new file mode 100644 index 0000000..d95e400 --- /dev/null +++ b/ec2/roles/kyma_infra/files/postgres-config.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +/opt/jboss-eap-7.4/bin/jboss-cli.sh --connect --file=/opt/jboss-eap-7.4/bin/postgres.cli \ No newline at end of file diff --git a/ec2/roles/kyma_infra/files/postgres.cli b/ec2/roles/kyma_infra/files/postgres.cli new file mode 100644 index 0000000..e65803e --- /dev/null +++ b/ec2/roles/kyma_infra/files/postgres.cli @@ -0,0 +1,20 @@ +# Batch script to add the PostgreSQL driver to the WildFly server configuration + +# Start batching commands +batch + +# Add the PostgreSQL database driver to the datasources subsystem + +/subsystem=datasources/jdbc-driver=postgresql:add(driver-name=postgresql,driver-module-name=org.postgresql) + +data-source add --name=CoolstoreDS --jndi-name=java:jboss/datasources/CoolstoreDS --driver-name=postgresql --connection-url=jdbc:postgresql://127.0.0.1:5432/postgresDB --user-name=postgresUser --password=postgresPW + +jms-topic add --topic-address=topic.orders --entries=topic/orders + +/subsystem=messaging-activemq/server=default:write-attribute(name=cluster-password, value=password) + +# Run the batch commands +run-batch + +# Reload the server configuration +reload \ No newline at end of file diff --git a/ec2/roles/kyma_infra/tasks/install-docker.yml b/ec2/roles/kyma_infra/tasks/install-docker.yml index 30e3ed6..5cfa98c 100644 --- a/ec2/roles/kyma_infra/tasks/install-docker.yml +++ b/ec2/roles/kyma_infra/tasks/install-docker.yml @@ -45,3 +45,4 @@ name: docker state: restarted +- meta: reset_connection diff --git a/ec2/roles/kyma_infra/tasks/java-app-deploy-prereq.yml b/ec2/roles/kyma_infra/tasks/java-app-deploy-prereq.yml new file mode 100644 index 0000000..77be296 --- /dev/null +++ b/ec2/roles/kyma_infra/tasks/java-app-deploy-prereq.yml @@ -0,0 +1,57 @@ +--- + +# create docker db container +- name: Create docker db container + ansible.builtin.shell: docker run --name myPostgresDb -p 5432:5432 -e POSTGRES_USER=postgresUser -e POSTGRES_PASSWORD=postgresPW -e POSTGRES_DB=postgresDB -d postgres + become_user: fedora + +- name: "JBoss EAP installation and configuration 1" + vars: + wildfly_install_workdir: '/opt' + wildfly_version: '7.4.0' + install_name: jboss-eap + wildfly_archive_filename: "{{ install_name }}-{{ wildfly_version }}.zip" + wildfly_user: "{{ install_name }}" + wildfly_group: "{{ install_name }}" + wildfly_config_base: standalone-full.xml + wildfly_home: "{{ wildfly_install_workdir }}/{{ install_name }}-{{ 7.4 }}" + wildfly_driver_module_name: "org.postgresql" + wildfly_driver_version: "42.5.4" + wildfly_driver_jar_filename: "postgresql-{{ wildfly_driver_version }}.jar" + wildfly_driver_jar_url: "https://jdbc.postgresql.org/download/postgresql-42.5.4.jar" + include_role: + name: middleware_automation.wildfly.wildfly_driver + +#restart jboss server +- name: Restart JBoss EAP + ansible.builtin.service: + name: jboss-eap + state: restarted + become: true + +# copy files/postgres.cli to /opt/jboss-eap-7.4/bin +- name: Copy postgres.cli to /opt/jboss-eap-7.4/bin + ansible.builtin.copy: + src: files/postgres.cli + dest: /opt/jboss-eap-7.4/bin + owner: jboss-eap + group: jboss-eap + mode: 0644 + become: true + +# copy postgres-config.sh to /opt/jboss-eap-7.4/bin +- name: Copy postgres-config.sh to /opt/jboss-eap-7.4/bin + ansible.builtin.copy: + src: files/postgres-config.sh + dest: /opt/jboss-eap-7.4/bin + owner: jboss-eap + group: jboss-eap + mode: 0755 + become: true + +- name: Run postgres-config.sh + ansible.builtin.shell: ./postgres-config.sh + become: true + args: + chdir: /opt/jboss-eap-7.4/bin + diff --git a/ec2/roles/kyma_infra/tasks/java-app-deploy.yml b/ec2/roles/kyma_infra/tasks/java-app-deploy.yml index 02ebae8..e29da63 100644 --- a/ec2/roles/kyma_infra/tasks/java-app-deploy.yml +++ b/ec2/roles/kyma_infra/tasks/java-app-deploy.yml @@ -41,6 +41,9 @@ ansible.builtin.shell: "keytool -import -alias mycert -keystore $JAVA_HOME/jre/lib/security/cacerts -file /tmp/maven_repository_redhat_com.cert -storepass changeit -noprompt" when: cert_check.rc != 0 +- name: Configure jboss + include_tasks: java-app-deploy-prereq.yml + when: app_name is defined and app_name == "coolstoredb" - name: Clone the Java EE application ansible.builtin.git: @@ -51,12 +54,12 @@ - name: Deploy the application with Maven to EAP ansible.builtin.shell: mvn clean package args: - chdir: "/home/fedora/{{ app_name }}" + chdir: "{{ local_app_path }}" + -# check if war file is presenr in {{ local_path.stat.path }}/{{ app_name }}/target/ - name: Check if war file is present ansible.builtin.stat: - path: "/home/fedora/{{ app_name }}/target/{{ app_name }}.war" + path: "{{ war_file_path }}" register: warfile # print the result of war file check @@ -66,7 +69,7 @@ - name: Deploy the application with Maven to EAP ansible.builtin.copy: - src: "/home/fedora/{{ app_name }}/target/{{ app_name }}.war" + src: "{{ war_file_path }}" dest: "{{ jboss_install_home }}/deployments/" remote_src: yes owner: "{{ jboss_owner }}" diff --git a/ec2/roles/kyma_infra/tasks/main.yml b/ec2/roles/kyma_infra/tasks/main.yml index 9885dba..8e79722 100644 --- a/ec2/roles/kyma_infra/tasks/main.yml +++ b/ec2/roles/kyma_infra/tasks/main.yml @@ -3,6 +3,9 @@ - name: Include tasks from prereq.yaml include_tasks: pre-req.yml +- name: install docker ce + include_tasks: install-docker.yml + - name: Configure Maven include_tasks: install-mvn.yml @@ -14,8 +17,6 @@ - name: Deploy Java EE application include_tasks: java-app-deploy.yml -- name: install docker ce - include_tasks: install-docker.yml - name: setup quarkus env include_tasks: quarkus-setup.yml diff --git a/ec2/roles/kyma_infra/tasks/pre-req.yml b/ec2/roles/kyma_infra/tasks/pre-req.yml index 7699675..0f17676 100644 --- a/ec2/roles/kyma_infra/tasks/pre-req.yml +++ b/ec2/roles/kyma_infra/tasks/pre-req.yml @@ -68,7 +68,6 @@ ansible.builtin.stat: path: "/home/fedora/{{ app_name }}" register: app_repo - # delete java app if the repo exists - name: Delete the Java EE application if the repo exists ansible.builtin.file: diff --git a/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml b/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml index ae8e022..9776498 100644 --- a/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml +++ b/ec2/roles/kyma_infra/tasks/quarkus-app-deploy.yml @@ -1,41 +1,68 @@ --- + # chdir to /home/fedora/{{app_name}} - name: chdir to /home/fedora/{{app_name}} ansible.builtin.shell: cd /home/fedora/{{app_name}} args: chdir: /home/fedora/{{app_name}} + when: same_repo == true # checkout quarkus branch and track it - git checkout remotes/origin/quarkus --track - name: checkout quarkus branch and track it ansible.builtin.shell: git checkout remotes/origin/{{ quarkus_git_branch }} --track args: - chdir: /home/fedora/{{app_name}} + chdir: /home/fedora/{{ app_name }} + when: same_repo == true + + +- name: Add new Git remote + ansible.builtin.shell: + cmd: "git remote add quarkus {{ git_url_quarkus }}" + chdir: "/home/fedora/{{ app_name }}" + when: same_repo == false + +- name: Checkout branch from remote + ansible.builtin.shell: + cmd: | + git fetch quarkus "+refs/heads/quarkus-3.2:refs/remotes/quarkus/quarkus-3.2" + git checkout -b quarkus-3.2 quarkus/quarkus-3.2 + chdir: "/home/fedora/{{ app_name }}" + when: same_repo == false + - name: Check if Docker is accessible using socket ansible.builtin.wait_for: path: /var/run/docker.sock state: present timeout: 10 - ignore_errors: true + ignore_errors: false register: docker_socket_status - name: Display Docker socket status ansible.builtin.debug: var: docker_socket_status +# display docker version +- name: Display Docker version + ansible.builtin.shell: docker version + register: docker_version + +- name: Display Docker version + ansible.builtin.debug: + var: docker_version.stdout_lines # build the quarkus app - mvn clean package - name: build the quarkus app ansible.builtin.shell: mvn clean package args: - chdir: /home/fedora/{{app_name}} + chdir: "{{ local_app_path }}" # Run the quarkus app locally - name: Start the server ansible.builtin.shell: "nohup mvn clean quarkus:dev -Dquarkus.http.port=8085 > server.log 2>&1 & echo $! > server.pid" args: - chdir: /home/fedora/{{ app_name }} + chdir: "{{ local_app_path }}" register: start_server_result # check if quarkus process is running using pid @@ -43,7 +70,7 @@ - name: Check if Quarkus app is running ansible.builtin.shell: "ps -p $(cat server.pid) | grep -v PID" args: - chdir: /home/fedora/{{ app_name }} + chdir: "{{ local_app_path }}" register: quarkus_app_running until: quarkus_app_running.stdout != "" retries: 10 diff --git a/ec2/roles/kyma_infra/tasks/quarkus-setup.yml b/ec2/roles/kyma_infra/tasks/quarkus-setup.yml index 5b009fa..e8a138a 100644 --- a/ec2/roles/kyma_infra/tasks/quarkus-setup.yml +++ b/ec2/roles/kyma_infra/tasks/quarkus-setup.yml @@ -1,11 +1,11 @@ --- -- name: Source SDKMAN initialization script and install Java 11.0.21-tem +- name: Source SDKMAN initialization script and install {{ quarkus_java_version}} shell: | source /home/fedora/.sdkman/bin/sdkman-init.sh - sdk install java 11.0.21-tem - sdk default java 11.0.21-tem - sdk use java 11.0.21-tem + sdk install java {{ quarkus_java_version}} + sdk default java {{ quarkus_java_version}} + sdk use java {{ quarkus_java_version}} sdk install quarkus args: executable: /bin/bash @@ -19,3 +19,4 @@ - name: Display Maven version debug: var: maven_version.stdout_lines + From 6d514912a742fa30a7fd5f228a26b85f5010bd40 Mon Sep 17 00:00:00 2001 From: Savitha Raghunathan Date: Fri, 19 Jan 2024 12:17:16 -0500 Subject: [PATCH 7/9] adding coolstoredb jboss cli issue fix --- ec2/roles/kyma_infra/defaults/main.yml | 42 +++++++++---------- ec2/roles/kyma_infra/files/postgres.cli | 2 +- .../tasks/java-app-deploy-prereq.yml | 36 +++++++++------- 3 files changed, 42 insertions(+), 38 deletions(-) diff --git a/ec2/roles/kyma_infra/defaults/main.yml b/ec2/roles/kyma_infra/defaults/main.yml index 273d5d6..c45a3f7 100644 --- a/ec2/roles/kyma_infra/defaults/main.yml +++ b/ec2/roles/kyma_infra/defaults/main.yml @@ -19,26 +19,26 @@ jboss_group: jboss-eap # kitchensink -maven_deploy: false -app_path: kitchensink -app_name: jboss-eap-quickstarts -local_app_path: /home/fedora/{{ app_name }}/{{ app_path }} -war_file_path: '{{ local_app_path }}/target/{{ app_path }}.war' -git_url: https://github.com/windup/jboss-eap-quickstarts.git -git_url_quarkus: https://github.com/tqvarnst/jboss-eap-quickstarts.git -javaee_git_branch: 7.4.x -quarkus_git_branch: quarkus-3.2 -same_repo: false -quarkus_java_version: 17.0.9-tem +#maven_deploy: false +#app_path: kitchensink +#app_name: jboss-eap-quickstarts +#local_app_path: /home/fedora/{{ app_name }}/{{ app_path }} +#war_file_path: '{{ local_app_path }}/target/{{ app_path }}.war' +#git_url: https://github.com/windup/jboss-eap-quickstarts.git +#git_url_quarkus: https://github.com/tqvarnst/jboss-eap-quickstarts.git +#javaee_git_branch: 7.4.x +#quarkus_git_branch: quarkus-3.2 +#same_repo: false +#quarkus_java_version: 17.0.9-tem # coolstoredb -# maven_deploy: false -# app_path: . -# app_name: coolstoredb -# git_url: https://github.com/mathianasj/eap-coolstore-monolith -# local_app_path: /home/fedora/{{ app_name }} -# javaee_git_branch: main -# quarkus_git_branch: quarkus-migration -# same_repo: true -# war_file_path: '{{ local_app_path }}/ROOT.war' -# quarkus_java_version: 11.0.21-tem \ No newline at end of file +maven_deploy: false +app_path: . +app_name: coolstoredb +git_url: https://github.com/mathianasj/eap-coolstore-monolith +local_app_path: /home/fedora/{{ app_name }} +javaee_git_branch: main +quarkus_git_branch: quarkus-migration +same_repo: true +war_file_path: '{{ local_app_path }}/target/ROOT.war' +quarkus_java_version: 17.0.9-tem \ No newline at end of file diff --git a/ec2/roles/kyma_infra/files/postgres.cli b/ec2/roles/kyma_infra/files/postgres.cli index e65803e..e95c622 100644 --- a/ec2/roles/kyma_infra/files/postgres.cli +++ b/ec2/roles/kyma_infra/files/postgres.cli @@ -7,7 +7,7 @@ batch /subsystem=datasources/jdbc-driver=postgresql:add(driver-name=postgresql,driver-module-name=org.postgresql) -data-source add --name=CoolstoreDS --jndi-name=java:jboss/datasources/CoolstoreDS --driver-name=postgresql --connection-url=jdbc:postgresql://127.0.0.1:5432/postgresDB --user-name=postgresUser --password=postgresPW +data-source add --name=CoolstoreDS --jndi-name=java:jboss/datasources/CoolstoreDS --driver-name=postgresql --connection-url=jdbc:postgresql://localhost:5432/postgresDB --user-name=postgresUser --password=postgresPW jms-topic add --topic-address=topic.orders --entries=topic/orders diff --git a/ec2/roles/kyma_infra/tasks/java-app-deploy-prereq.yml b/ec2/roles/kyma_infra/tasks/java-app-deploy-prereq.yml index 77be296..5fb23d3 100644 --- a/ec2/roles/kyma_infra/tasks/java-app-deploy-prereq.yml +++ b/ec2/roles/kyma_infra/tasks/java-app-deploy-prereq.yml @@ -1,9 +1,15 @@ --- +# check if docker container myPostgresDb is running +- name: Check if docker container myPostgresDb is running + ansible.builtin.shell: docker ps -a | grep myPostgresDb + register: docker_container_status + ignore_errors: true # create docker db container - name: Create docker db container - ansible.builtin.shell: docker run --name myPostgresDb -p 5432:5432 -e POSTGRES_USER=postgresUser -e POSTGRES_PASSWORD=postgresPW -e POSTGRES_DB=postgresDB -d postgres + ansible.builtin.shell: docker run --name myPostgresDb -p 5432:5432 -e POSTGRES_USER=postgresUser -e POSTGRES_PASSWORD=postgresPW -e POSTGRES_DB=postgresDB -d postgres:9 become_user: fedora + when: docker_container_status.rc != 0 - name: "JBoss EAP installation and configuration 1" vars: @@ -28,7 +34,6 @@ name: jboss-eap state: restarted become: true - # copy files/postgres.cli to /opt/jboss-eap-7.4/bin - name: Copy postgres.cli to /opt/jboss-eap-7.4/bin ansible.builtin.copy: @@ -39,19 +44,18 @@ mode: 0644 become: true -# copy postgres-config.sh to /opt/jboss-eap-7.4/bin -- name: Copy postgres-config.sh to /opt/jboss-eap-7.4/bin - ansible.builtin.copy: - src: files/postgres-config.sh - dest: /opt/jboss-eap-7.4/bin - owner: jboss-eap - group: jboss-eap - mode: 0755 - become: true -- name: Run postgres-config.sh - ansible.builtin.shell: ./postgres-config.sh - become: true - args: - chdir: /opt/jboss-eap-7.4/bin +- name: "Execute jboss-cli script to configure db and messagequeue" + vars: + wildfly_install_workdir: '/opt' + wildfly_version: '7.4.0' + install_name: jboss-eap + wildfly_home: "{{ wildfly_install_workdir }}/{{ install_name }}-{{ 7.4 }}" + wildfly_no_restart_after_patch: False + jboss_cli_file: /opt/jboss-eap-7.4/bin/postgres.cli + include_role: + name: middleware_automation.wildfly.wildfly_utils + tasks_from: jboss_cli.yml + + From 71273a78a53137aad343529794819b03f4bc9286 Mon Sep 17 00:00:00 2001 From: Savitha Raghunathan Date: Fri, 19 Jan 2024 15:11:04 -0500 Subject: [PATCH 8/9] add keycloak support and modify sec grp for port access 8085 --- ec2/create_infra.yml | 8 ++++++++ ec2/requirements.yml | 1 + ec2/roles/kyma_infra/tasks/java-app-deploy-prereq.yml | 11 ++++++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/ec2/create_infra.yml b/ec2/create_infra.yml index fd0deeb..29e2c54 100644 --- a/ec2/create_infra.yml +++ b/ec2/create_infra.yml @@ -92,6 +92,14 @@ ports: - 9990 cidr_ip: 0.0.0.0/0 + - proto: tcp + ports: + - 8081 + cidr_ip: 0.0.0.0/0 + - proto: tcp + ports: + - 8085 + cidr_ip: 0.0.0.0/0 state: "present" register: security_group diff --git a/ec2/requirements.yml b/ec2/requirements.yml index 2e03b96..f4b80f5 100644 --- a/ec2/requirements.yml +++ b/ec2/requirements.yml @@ -6,4 +6,5 @@ collections: - middleware_automation.common - middleware_automation.wildfly - kubernetes.core +- middleware_automation.keycloak diff --git a/ec2/roles/kyma_infra/tasks/java-app-deploy-prereq.yml b/ec2/roles/kyma_infra/tasks/java-app-deploy-prereq.yml index 5fb23d3..dee64a1 100644 --- a/ec2/roles/kyma_infra/tasks/java-app-deploy-prereq.yml +++ b/ec2/roles/kyma_infra/tasks/java-app-deploy-prereq.yml @@ -58,4 +58,13 @@ tasks_from: jboss_cli.yml - +# install keycloak using middleware_automation.keycloak role +- name: Install Keycloak + include_role: + name: middleware_automation.keycloak.keycloak + vars: + #keycloak_version: 20.0.5 + keycloak_admin_password: adminchangemelater + #keycloak_download_url: https://github.com/keycloak/keycloak/releases/download/20.0.5/keycloak-20.0.5.zip + #keycloak_http_port: 8081 + keycloak_jboss_port_offset: 1 \ No newline at end of file From 933b16397a7c25216bb3571d649d67e55dbfe508 Mon Sep 17 00:00:00 2001 From: Savitha Raghunathan Date: Tue, 23 Jan 2024 09:54:10 -0500 Subject: [PATCH 9/9] adding readme with info on how to deploy the app --- ec2/roles/kyma_infra/README.md | 47 +++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/ec2/roles/kyma_infra/README.md b/ec2/roles/kyma_infra/README.md index 70788e7..9511fb9 100644 --- a/ec2/roles/kyma_infra/README.md +++ b/ec2/roles/kyma_infra/README.md @@ -8,11 +8,41 @@ Requirements Provision the fedora server using ./create_infra.sh. Please refer to the [readme](../README.md) -How to Run ----------- +Dependencies +------------ +* This role is dependent on the following roles + - jboss-eap + - Wildfly utils + - Wildfly driver + - keycloak + +How to deploy the apps +------------- +* For setting up the ec2 instance, refer to [ec2 role](https://github.com/migtools/playpen/tree/main/ec2#readme) + +* Once its setup, make sure the app you want to install has the [correct configuration](./ec2/roles/kyma_infra/defaults/main.yml) + +* Run the role using the script `./setup_kyma_infra.sh` + +Once the run is successful you can access the apps in the following URLs, -* cd ../ -* Run `./setup_kyma_infra.sh` +* Kitchensink - https://github.com/tqvarnst/jboss-eap-quickstarts/tree/quarkus-3.2, https://github.com/windup/jboss-eap-quickstarts/tree/7.4.x/kitchensink/src/main/java/org/jboss/as/quickstarts/kitchensink + * eap - http://:8080/kitchensink + * quarkus - http://:8085/kitchensink + +* helloworld-mdb - https://github.com/savitharaghunathan/helloworld-mdb + * eap - http://:8080/helloworld-mdb/HelloWorldMDBServletClient (to send messages to the queue) + * eap - http://:8080/helloworld-mdb/HelloWorldMDBServletClient?topic ( to send messages to the topic) + * quarkus - http://:8085/HelloWorldMDBServletClient + * quarkus - http://:8085/HelloWorldMDBServletClient?topic + +* coolstoredb - https://github.com/mathianasj/eap-coolstore-monolith/tree/quarkus-migration, https://github.com/deewhyweb/eap-coolstore-monolith + * eap - http://:8080 + * quarkus - http://:8085 + + +Additional Information +------------- Background ------------- @@ -22,20 +52,19 @@ Background * docker-ce * EAP 7.4 using java 8 * EAP running on port 8080 - * Quarkus using java 11 + * Quarkus using java 11/17 depending on the app * Quarkus running on port 8085 * Java versions and quarkus installations are managed by sdkman * manual maven install * uses roles from migtools/playpen repo to create ec2 instance and configure eap - * note: eap should use standalonefull config + * note: eap should use standalone full config for messaging to work * created a new role called kyma_infra - https://github.com/migtools/playpen/pull/5 * run the role using the script ./setup_kyma_infra.sh - * Manual run down : https://hackmd.io/H04eYLdSS82wt8Ryh8UOSQ Todo: ------ * refactor java installation * Take input of java versions and install that using sdkman -* Run quarkus in prod mode +* Run apps in prod mode * Note: wildfly role overrides java8 installed by sdkman. Refactor wildfly role to not install java, it is installed already -* \ No newline at end of file +* Use mainitained ansible role for maven install and management if possible \ No newline at end of file