ansible/roles/data_lake/tasks/main.yml (175 lines of code) (raw):

- name: Install Datalake pre-requireties (RedHat) yum: name={{ item }} state=latest update_cache=yes with_items: - maven become: yes when: ansible_os_family == "RedHat" - name: Install Datalake pre-requireties (Debian) apt: name={{ item }} state=latest update_cache=yes with_items: - maven become: yes when: ansible_os_family == "Debian" - name: open firewall port 8443 for DRMS REST connections firewalld: port="8443/tcp" zone=public permanent=true state=enabled immediate=yes become: yes - name: open firewall port 7070 for DRMS Grpc connections firewalld: zone: public permanent: yes state: enabled immediate: yes rich_rule: rule family=ipv4 source address="{{ item }}" port port="7070" protocol=tcp accept become: yes with_items: - "{{ sharing_subnets }}" - name: open firewall port 80 for HTTP connections firewalld: port="80/tcp" zone=public permanent=true state=enabled immediate=yes become: yes - name: open firewall port 443 for HTTPS connections firewalld: port="443/tcp" zone=public permanent=true state=enabled immediate=yes become: yes - name: open firewall port 9092 for Kafka connections firewalld: zone: public permanent: yes state: enabled immediate: yes rich_rule: rule family=ipv4 source address="{{ item }}" port port="9092" protocol=tcp accept become: yes with_items: - "{{ sharing_subnets }}" - name: open firewall port 6060 for Data Orchestrator Grpc connections firewalld: zone: public permanent: yes state: enabled immediate: yes rich_rule: rule family=ipv4 source address="{{ item }}" port port="6060" protocol=tcp accept become: yes with_items: - "{{ sharing_subnets }}" - name: open firewall port {{ datalake_data_orch_http_port }} for Data Orchestrator HTTP connections firewalld: zone: public permanent: yes state: enabled immediate: yes rich_rule: rule family=ipv4 source address="{{ item }}" port port="{{ datalake_data_orch_http_port }}" protocol=tcp accept become: yes with_items: - "{{ sharing_subnets }}" - name: open firewall port {{ datalake_data_orch_grpc_port }} for Data Orchestrator gRPC connections firewalld: zone: public permanent: yes state: enabled immediate: yes rich_rule: rule family=ipv4 source address="{{ item }}" port port="{{ datalake_data_orch_grpc_port }}" protocol=tcp accept become: yes with_items: - "{{ sharing_subnets }}" - name: open firewall port {{ datalake_data_drms_rest_port }} for DRMS REST connections firewalld: zone: public permanent: yes state: enabled immediate: yes rich_rule: rule family=ipv4 source address="{{ item }}" port port="{{ datalake_data_drms_rest_port }}" protocol=tcp accept become: yes with_items: - "{{ sharing_subnets }}" - name: Create Datalake deployment directory {{ datalake_deployment_dir }} become: yes file: path={{ datalake_deployment_dir }} state=directory mode=0755 owner={{ user }} group={{ group }} - name: Create Datalake source directory become: yes file: path={{ datalake_source_dir }} state=directory mode=0755 owner={{ user }} group={{ group }} - name: git checkout from Datalake github repo {{ datalake_repo }} branch {{ datalake_git_branch }} git: repo="{{ datalake_repo }}" dest="{{ datalake_source_dir }}" version="{{ datalake_git_branch }}" register: checkout tags: update become: yes become_user: "{{ user }}" - name: Run Datalake maven build command: mvn clean install -Dmaven.test.skip=true chdir="{{ datalake_source_dir }}/" environment: MAVEN_OPTS: "-Xmx2048m" register: build tags: update become: yes become_user: "{{ user }}" - name: Stop drms service command: systemctl daemon-reload notify: stop drms-service become: yes #- name: Stop custos synchronizer service # command: systemctl daemon-reload # notify: stop drms-custos-sync # become: yes - name: Stop orchestrator service command: systemctl daemon-reload notify: stop orch-service become: yes - name: Delete lib directories of the distributions file: state: absent path: "{{ datalake_deployment_dir }}/{{ item }}" with_items: - "DRMS-{{datalake_distribution_version}}/lib" - "DRMS-Custos-Synchronizer-{{datalake_distribution_version}}/lib" - "Orchestrator-API-Service-{{datalake_distribution_version}}/lib" become: yes become_user: "{{ user }}" ignore_errors: yes - name: Copy Datalake distributions to Datalake deployment directory unarchive: "src={{ datalake_source_dir }}/{{ item }} dest={{ datalake_deployment_dir }}/ copy=no" with_items: - "data-resource-management-service/drms-rdbms-impl/drms-server/target/DRMS-{{datalake_distribution_version}}-bin.zip" - "data-resource-management-service/drms-custos-synchronizer/target/DRMS-Custos-Synchronizer-{{datalake_distribution_version}}-bin.zip" - "data-orchestrator/data-orchestrator-service/data-orchestrator-api-server/target/Orchestrator-API-Service-{{datalake_distribution_version}}-bin.zip" become: yes become_user: "{{ user }}" - name: Copy Datalake property files template: "src={{ item.name }} dest={{ datalake_deployment_dir }}/{{ item.dir }}/conf/{{ item.target }} owner={{ user }} group={{ group }} mode=\"u=rw,g=r,o=r\"" with_items: - { name: drms/application.properties.j2, dir: "DRMS-{{datalake_distribution_version}}", target: application.properties} - { name: custos-data-synchronizer/config.yml.j2, dir: "DRMS-Custos-Synchronizer-{{datalake_distribution_version}}", target: config.yml } - { name: data-orchestrator/application.properties.j2, dir: "Orchestrator-API-Service-{{datalake_distribution_version}}", target: application.properties } - { name: data-orchestrator/config.yml.j2, dir: "Orchestrator-API-Service-{{datalake_distribution_version}}", target: config.yml } become: yes become_user: "{{ user }}" - name: Start drms service command: systemctl daemon-reload notify: start drms-service become: yes #- name: Start custos synchronizer service # command: systemctl daemon-reload # notify: start drms-custos-sync # become: yes - name: Start orchestrator service command: systemctl daemon-reload notify: start orch-service become: yes - name: Start Envoy proxy command: systemctl daemon-reload notify: start envoy become: yes