deploy/ansible/roles-db/windows/4.4.0-mssql-install/tasks/4.4.0.1-mssql-main.yaml (148 lines of code) (raw):

# Copyright (c) Microsoft Corporation. # Licensed under the MIT License. --- # /*---------------------------------------------------------------------------8 # | | # | Perform the MSSQL DB Instance installation | # | Generic: Install from Microsoft bits | # | SAP4SQL: Install from SAP provided bits | # | | # +------------------------------------4--------------------------------------*/ # Draft version # Data file in a different disk - name: "WIN-SQL: Create run flag directory" ansible.windows.win_file: path: '{{ sap_deployment_automation }}\{{ sap_sid | upper }}' state: directory - name: "WIN-SQL: check if SQL Server service is started" ansible.windows.win_service_info: name: MSSQLServer register: sql_service - name: "WIN-SQL: SQL4SAP Install || Flag File" ansible.windows.win_file: path: '{{ sap_deployment_automation }}\{{ sap_sid | upper }}\sap_deployment_sqldb.txt' state: touch when: sql_service.exists # - name: "WIN-SQL: Install reset" # ansible.windows.win_file: # path: '{{ target_media_location }}\sap_deployment_automation\{{ sap_sid | upper }}\sap_deployment_sqldb.txt' # state: absent # when: reinstall - name: "WIN-SQL: check if installed" ansible.windows.win_stat: path: '{{ sap_deployment_automation }}\{{ sap_sid | upper }}\sap_deployment_sqldb.txt' register: sql_installed # +------------------------------------4--------------------------------------*/ - name: "WIN-SQL: check if SQL4SAP is installed" block: - name: "WIN-SQL: Install status" ansible.builtin.debug: msg: "WIN-SQL: is already installed" - name: "WIN-SQL:: - return value" ansible.builtin.set_fact: sql4sap_already_installed: true when: - sql_installed.stat.exists - name: "WIN-SQL: Install from Microsoft bits" block: - name: "WIN-SQL: Progress" ansible.builtin.debug: msg: "Start SQL4SAP Installation" - name: "WIN-SQL: Install SQL4SAP on {{ ansible_hostname }}" ansible.windows.win_shell: | {{ download_directory_windows }}\{{ mssserver_version }}\SQL4SAP.bat -d args: creates: '{{ sap_deployment_automation }}\{{ sap_sid | upper }}\sap_deployment_sqldb.txt' vars: ansible_become: true ansible_become_method: ansible.builtin.runas ansible_become_user: '{{ sap_sid }}adm@{{ domain_name }}' ansible_become_password: "{{ domain_user_password }}" register: sql_install_output failed_when: sql_install_output.rc != 0 - name: "WIN-SQL: Installation results" ansible.builtin.debug: msg: "SQL4SAP Installation succeeded" changed_when: true when: - sql_install_output.rc is defined - sql_install_output.rc == 0 - sql_install_output.stdout | length > 0 - sql_install_output.stdout is search("Execution successful") notify: "WIN-SQL: Restart SQL Server VM" - name: "Force all notified handlers to run now" ansible.builtin.meta: flush_handlers - name: "WIN-SQL: Installation results" ansible.builtin.debug: msg: "WIN-SQL: A reboot is pending. We will restart the machine, so please start SQL4SAP installation again." changed_when: true when: - sql_install_output.rc is defined - sql_install_output.rc == 0 - sql_install_output.stdout | length > 0 - sql_install_output.stdout is search("A reboot is pending.") notify: "WIN-SQL: Restart SQL Server VM" - name: "Force all notified handlers to run now" ansible.builtin.meta: flush_handlers - name: "WIN-SQL: Installation results" ansible.builtin.debug: msg: - "SQL4SAP Installation failed, another installation might be already exist" - "SQL4SAP output: {{ sql_install_output }}" when: - sql_install_output.rc is defined - sql_install_output.rc == 0 - sql_install_output.stdout | length > 0 - sql_install_output.stdout is search("Error during execution") - name: "WIN-SQL: SQL4SAP Install || Flag File" ansible.windows.win_file: path: '{{ sap_deployment_automation }}\{{ sap_sid | upper }}\sap_deployment_sqldb.txt' state: touch when: - sql_install_output.stdout | length > 0 - sql_install_output.stdout is not search("A reboot is pending.") when: - not sql_installed.stat.exists - use_sql_for_SAP - name: "WIN-SQL: Install from Microsoft " block: - name: "WIN-SQL: Install SQL4SAP on {{ ansible_hostname }}" ansible.windows.win_shell: | {{ download_directory_windows }}\{{ mssserver_version }}\SQL4SAP.bat -d args: creates: '{{ sap_deployment_automation }}\{{ sap_sid | upper }}\sap_deployment_sqldb.txt' vars: ansible_become: true ansible_become_method: ansible.builtin.runas ansible_become_user: '{{ sap_sid }}adm@{{ domain_name }}' ansible_become_password: "{{ domain_user_password }}" register: sql_install_output failed_when: sql_install_output.rc != 0 - name: "WIN-SQL: Installation results" ansible.builtin.debug: msg: "SQL4SAP Installation succeeded" changed_when: true when: - sql_install_output.rc is defined - sql_install_output.rc == 0 - sql_install_output.stdout | length > 0 - sql_install_output.stdout is search("Execution successful") notify: "WIN-SQL: Restart SQL Server VM" - name: "Force all notified handlers to run now" ansible.builtin.meta: flush_handlers - name: "WIN-SQL: Installation results" ansible.builtin.debug: msg: "WIN-SQL: A reboot is pending. We will restart the machine, so please start SQL4SAP installation again." changed_when: true when: - sql_install_output.rc is defined - sql_install_output.rc == 0 - sql_install_output.stdout | length > 0 - sql_install_output.stdout is search("A reboot is pending.") notify: "WIN-SQL: Restart SQL Server VM" - name: "Force all notified handlers to run now" ansible.builtin.meta: flush_handlers - name: "WIN-SQL: Installation results" ansible.builtin.debug: msg: - "SQL4SAP Installation failed, another installation might be already exist" - "SQL4SAP output: {{ sql_install_output }}" when: - sql_install_output.rc is defined - sql_install_output.rc == 0 - sql_install_output.stdout | length > 0 - sql_install_output.stdout is search("Error during execution") - name: "WIN-SQL: SQL4SAP Install || Flag File" ansible.windows.win_file: path: '{{ sap_deployment_automation }}\{{ sap_sid | upper }}\sap_deployment_sqldb.txt' state: touch when: - sql_install_output.stdout | length > 0 - sql_install_output.stdout is not search("A reboot is pending.") when: - not sql_installed.stat.exists - not use_sql_for_SAP ... # /*---------------------------------------------------------------------------8 # | END | # +------------------------------------4--------------------------------------*/