deploy/ansible/playbook_sapcal_integration.yaml (114 lines of code) (raw):
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
---
- name: "SAP CAL Integration"
hosts: "{{ sap_sid | upper }}_DB :
{{ sap_sid | upper }}_SCS :
{{ sap_sid | upper }}_PAS :
{{ sap_sid | upper }}_APP"
become: true
gather_facts: true
vars_files: vars/ansible-input-api.yaml
tasks:
- name: "SAP-CAL Integration"
become: true
when:
- ansible_os_family | upper == "SUSE" or ansible_os_family | upper == "REDHAT"
- enable_sap_cal is defined and enable_sap_cal
block:
- name: "6.0.0-sapcal-install - Extend logical volumes"
when: ansible_os_family | upper == "REDHAT"
ansible.builtin.include_role:
name: roles-os/1.5.3-disk-setup-sapcal
- name: "Retrieve Resource Group Name and ResourceID"
ansible.builtin.uri:
url: http://169.254.169.254/metadata/instance?api-version=2021-02-01
use_proxy: false
headers:
Metadata: true
register: azure_metadata
- name: "Set ResourceID for SCS"
ansible.builtin.set_fact:
subscription_id: "{{ azure_metadata.json.compute.subscriptionId }}"
resource_group_name: "{{ azure_metadata.json.compute.resourceGroupName }}"
scs_resource_id: "{{ azure_metadata.json.compute.resourceId }}"
scs_physical_hostname: "{{ ansible_hostname }}"
scs_virtual_hostname: "{{ virtual_host }}"
when:
- "'scs' in supported_tiers"
- not scs_high_availability
- name: "Set ResourceID for DB"
ansible.builtin.set_fact:
db_resource_id: "{{ azure_metadata.json.compute.resourceId }}"
db_physical_hostname: "{{ ansible_hostname }}"
db_virtual_hostname: "{{ virtual_host }}"
when:
- "'hana' in supported_tiers"
- not db_high_availability
- name: "Set ResourceID for PAS"
ansible.builtin.set_fact:
pas_resource_id: "{{ azure_metadata.json.compute.resourceId }}"
pas_physical_hostname: "{{ ansible_hostname }}"
pas_virtual_hostname: "{{ virtual_host }}"
when:
- "'pas' in supported_tiers"
- name: "Set ResourceID for APP"
ansible.builtin.set_fact:
app_resource_id: "{{ azure_metadata.json.compute.resourceId }}"
app_physical_hostname: "{{ ansible_hostname }}"
app_virtual_hostname: "{{ virtual_host }}"
when:
- "'app' in supported_tiers"
- name: "Provision a new SAP environment"
hosts: localhost
connection: local
gather_facts: true
vars_files: vars/ansible-input-api.yaml
tasks:
- name: "Check if Enable SAP CAL is true"
ansible.builtin.assert:
that:
- enable_sap_cal is defined
- enable_sap_cal | bool
fail_msg: "Please set enable_sap_cal to true in the sap-parameters.yaml file to enable SAP CAL integration"
- name: Run the keyvault role
ansible.builtin.include_role:
name: roles-misc/0.2-kv-secrets
vars:
operation: sapcal
tags:
- kv-secrets
# Once the Ansible Module is updated, this task will be moved to OS configuration playbook
- name: "SAP-CAL Integration: - Ensure azure-keyvault is installed"
become: true
when: enable_sap_cal is defined and enable_sap_cal
block:
- name: "SAP-CAL Integration: - Ensure azure-keyvault is installed"
ansible.builtin.pip:
name:
- azure-keyvault==1.1.0
- azure-keyvault-secrets
state: present
tags:
- always
- name: "Set facts from other hosts"
ansible.builtin.set_fact:
"{{ item.key }}": "{{ hostvars[groups[sap_sid | upper + '_' + item.value][0]][item.key] }}"
loop:
- { key: 'subscription_id', value: 'SCS' }
- { key: 'resource_group_name', value: 'SCS' }
- { key: 'scs_resource_id', value: 'SCS' }
- { key: 'scs_physical_hostname', value: 'SCS' }
- { key: 'scs_virtual_hostname', value: 'SCS' }
- { key: 'db_resource_id', value: 'DB' }
- { key: 'db_physical_hostname', value: 'DB' }
- { key: 'db_virtual_hostname', value: 'DB' }
- { key: 'pas_resource_id', value: 'PAS' }
- { key: 'pas_physical_hostname', value: 'PAS' }
- { key: 'pas_virtual_hostname', value: 'PAS' }
- { key: 'app_resource_id', value: 'APP' }
- { key: 'app_physical_hostname', value: 'APP' }
- { key: 'app_virtual_hostname', value: 'APP' }
- name: "6.0.0-sapcal-install - CALL SAP CAL API"
when: enable_sap_cal is defined and enable_sap_cal
block:
- name: "Import the 6.0.0-sapcal-install role"
ansible.builtin.import_role:
name: "roles-sap/6.0.0-sapcal-install"