deploy/ansible/roles-misc/0.8-ams-providers/tasks/main.yaml (168 lines of code) (raw):

# Copyright (c) Microsoft Corporation. # Licensed under the MIT License. --- - name: "0.8.1 ams provider creation: - Set Python version {{ distribution_id }}" ansible.builtin.set_fact: python_version: "python3" db_hosts: "{{ query('inventory_hostnames', '{{ sap_sid | upper }}_DB') }}" scs_hosts: "{{ query('inventory_hostnames', '{{ sap_sid | upper }}_SCS') }}" ers_hosts: "{{ query('inventory_hostnames', '{{ sap_sid | upper }}_ERS') }}" ha_cluster_port_number: "{{ 9664 if ansible_os_family | upper == 'SUSE' else 44322 }}" - name: "0.8.1 ams provider creation: - Install [AMS] cli extension" delegate_to: localhost ansible.builtin.shell: >- az extension add --name workloads --yes || exit 1 tags: - skip_ansible_lint - name: "0.8.1 ams provider creation: - perform az login" delegate_to: localhost ansible.builtin.command: >- az login --identity --allow-no-subscriptions --output none no_log: true changed_when: false - name: "0.8.1 ams provider creation: - Get Access Token" delegate_to: localhost ansible.builtin.shell: >- az account get-access-token --resource https://management.azure.com \ --query accessToken -o tsv register: ams_access_token tags: - skip_ansible_lint - name: "0.8.1 ams provider creation: - Generate a guid for the AMS provider instance" delegate_to: localhost ansible.builtin.command: uuidgen register: ams_provider_guid tags: - skip_ansible_lint - name: "0.8.1 ams provider creation: - Create PrometheusOS (OS) provider in AMS" delegate_to: localhost when: - ansible_os_family | upper == 'SUSE' or ansible_os_family | upper == 'REDHAT' - enable_os_monitoring block: - name: "0.8.1 ams provider creation: - Create Prometheus OS AMS provider instance" ansible.builtin.uri: url: "https://management.azure.com{{ ams_resource_id }}/providerInstances/{{ ansible_hostname | upper }}-OS?api-version=2023-04-01" method: PUT body_format: json body: | { "properties": { "providerSettings": { "providerType": "PrometheusOS", "prometheusUrl": "http://{{ hostvars[ansible_hostname]['ansible_default_ipv4']['address'] }}:9100/metrics", "sslPreference": "Disabled", "sapSid": "{{ sap_sid | upper }}" } } } headers: Authorization: "Bearer {{ ams_access_token.stdout }}" x-ms-rpaas-new-resource: "true" x-ms-client-request-id: "SDAF-{{ ams_provider_guid.stdout }}" register: create_ams_provider_response failed_when: create_ams_provider_response.json.properties.provisioningState != 'Accepted' - name: "0.8.1 ams provider creation: - Check the created OS provider instance in AMS" ansible.builtin.uri: url: "https://management.azure.com{{ ams_resource_id }}/providerInstances/{{ ansible_hostname | upper }}-OS?api-version=2023-04-01" method: GET headers: Authorization: "Bearer {{ ams_access_token.stdout }}" x-ms-rpaas-new-resource: "true" x-ms-client-request-id: "SDAF-{{ ams_provider_guid.stdout }}" register: get_ams_response until: get_ams_response.json.properties.provisioningState == 'Succeeded' retries: 10 delay: 60 no_log: true - name: "0.8.2 ams provider creation: - Create PrometheusHACluster HA provider in AMS" delegate_to: localhost when: - ansible_os_family | upper == 'SUSE' or ansible_os_family | upper == 'REDHAT' - enable_ha_monitoring block: - name: "0.8.2 ams provider creation: - DB Cluster: Create PrometheusHACluster" block: - name: "0.8.2 ams provider creation: - Create PrometheusHACluster AMS provider instance" ansible.builtin.uri: url: "https://management.azure.com{{ ams_resource_id }}/providerInstances/{{ ansible_hostname | upper }}-HA-DB?api-version=2023-04-01" method: PUT body_format: json body: | { "properties": { "providerSettings": { "providerType": "PrometheusHaCluster", "prometheusUrl": "http://{{ hostvars[ansible_hostname]['ansible_default_ipv4']['address'] }}:{{ ha_cluster_port_number }}/metrics", "hostname": "{{ ansible_hostname }}", "sid": "{{ sap_sid | upper }}", "clusterName": "{{ sap_sid | upper }}-DB", "sslPreference": "Disabled" } } } headers: Authorization: "Bearer {{ ams_access_token.stdout }}" x-ms-rpaas-new-resource: "true" x-ms-client-request-id: "SDAF-{{ ams_provider_guid.stdout }}" register: create_ams_provider_response failed_when: create_ams_provider_response.json.properties.provisioningState != 'Accepted' no_log: true - name: "0.8.2 ams provider creation: - Check the created HA provider instance in AMS" ansible.builtin.uri: url: "https://management.azure.com{{ ams_resource_id }}/providerInstances/{{ ansible_hostname | upper }}-HA-DB?api-version=2023-04-01" method: GET headers: Authorization: "Bearer {{ ams_access_token.stdout }}" x-ms-rpaas-new-resource: "true" x-ms-client-request-id: "SDAF-{{ ams_provider_guid.stdout }}" register: get_ams_response until: get_ams_response.json.properties.provisioningState == 'Succeeded' retries: 10 delay: 60 no_log: true when: - ansible_hostname in db_hosts - database_high_availability - name: "0.8.2 ams provider creation: - SCS Cluster: Create PrometheusHACluster" block: - name: "0.8.2 ams provider creation: - Create PrometheusHACluster AMS provider instance" ansible.builtin.uri: url: "https://management.azure.com{{ ams_resource_id }}/providerInstances/{{ ansible_hostname | upper }}-HA-SCS?api-version=2023-04-01" method: PUT body_format: json body: | { "properties": { "providerSettings": { "providerType": "PrometheusHaCluster", "prometheusUrl": "http://{{ hostvars[ansible_hostname]['ansible_default_ipv4']['address'] }}:{{ ha_cluster_port_number }}/metrics", "hostname": "{{ ansible_hostname }}", "sid": "{{ sap_sid | upper }}", "clusterName": "{{ sap_sid | upper }}-SCS", "sslPreference": "Disabled" } } } headers: Authorization: "Bearer {{ ams_access_token.stdout }}" x-ms-rpaas-new-resource: "true" x-ms-client-request-id: "SDAF-{{ ams_provider_guid.stdout }}" register: create_ams_provider_response failed_when: create_ams_provider_response.json.properties.provisioningState != 'Accepted' no_log: true - name: "0.8.2 ams provider creation: - Check the created HA provider instance in AMS" ansible.builtin.uri: url: "https://management.azure.com{{ ams_resource_id }}/providerInstances/{{ ansible_hostname | upper }}-HA-SCS?api-version=2023-04-01" method: GET headers: Authorization: "Bearer {{ ams_access_token.stdout }}" x-ms-rpaas-new-resource: "true" x-ms-client-request-id: "SDAF-{{ ams_provider_guid.stdout }}" register: get_ams_response until: get_ams_response.json.properties.provisioningState == 'Succeeded' retries: 10 delay: 60 no_log: true when: - ansible_hostname in scs_hosts or ansible_hostname in ers_hosts - scs_high_availability # More provider creation tasks to be added below this line. ...