diff --git a/playbooks/README.md b/playbooks/README.md index 7362b9535..02987c363 100644 --- a/playbooks/README.md +++ b/playbooks/README.md @@ -1,8 +1,64 @@ -# List of playbooks +# Ansible Collection Playbooks + +The playbooks starting with `sample-` in this directory can be used as examples for your own playbooksi and cannot be called directly from the commandline. +The other playbooks can be called directly with a prepared variable file or imported in your own playbooks or workflows. +The playbooks can run against localhost, all hosts or defined group. + +## Usage of playbooks + +### Prepare System for SAP HANA installation: `sap_hana_prepare_exec.yml` + +This playbook runs against localhost and/or remote hosts. +You need to define the variable `sap_hana_group`to run this playbook against a particular group of hosts which is defined in your inventory. +If you do not define the parameter `sap_hana_group` the playbook will run against all hosts in the inventory unless limited with `-l hostname' or localhost if no inventory is defined. + +To run this playbook you need to prepare a variable file with a minimum viable set of variables. + +#### Example: + +Create a parameter file `my_vars.yml` with similar content: + +```[yaml] + # sap_playbook_parameter_confirm: false # Set to true if you want to list parameters and confirm execution + sap_domain: my.sap.domain + sap_general_preconfigure_modify_etc_hosts: true + sap_general_preconfigure_update: true + sap_general_preconfigure_fail_if_reboot_required: false + sap_hana_preconfigure_update: true + sap_hana_preconfigure_fail_if_reboot_required: false + sap_hana_preconfigure_reboot_ok: true +``` + +Create the file `my_inventory` similar to: + +```[yaml] +[my_hanas] +hana1 +hana2 +``` + +Now you can run the playbook with + +```[bash] +ansible-playbook community.sap_install.sap_hana_preconfigure_exec.yml -i my_inventory -e @my_vars.yml -e sap_hana_group=my_hanas +``` + +When you call this playbook against a remote host make sure the user can connect and assume root without a password or pass the following parameters if necessary + +```[bash] + -u : User that establishes the ssh connection + -k: asks for password or passphrase of the connection user, if required for ssh + -K: asks for the privilege escalation password of the connection user to become root on the target host +``` + +You can also call the playbook inside another playbook with: + +``` +- name: Include HANA preparation from collection for group my_hanas + ansible.builtin.import_playbook: community.sap_install.sap_hana_prepare_exec.yml + vars: + sap_hana_group: my_hanas + # add other vars here, or define somewhere else +``` -- prepare-for-hana -- prepare-for-netweaver -- install-sap-hana -- install-sap-hana-cluster -- install-sap-hana-s4 diff --git a/playbooks/sap_hana_preconfigure_exec.yml b/playbooks/sap_hana_preconfigure_exec.yml new file mode 100644 index 000000000..b70cf2a39 --- /dev/null +++ b/playbooks/sap_hana_preconfigure_exec.yml @@ -0,0 +1,50 @@ +--- +## +# Call this playbook only with all variables defined. +# +# The minimum viable set of variables which need to be defined are: +# +# sap_hana_group: name of group in inventory - defaults to localhost if not set +# sap_domain: SAP domain - defaults to ansible_domain if not set, but must not be empty +# +# for redhat.sap_install.sap_general_preconfigure +# sap_general_preconfigure_modify_etc_hosts: defaults to true +# sap_general_preconfigure_update: defaults to false +# sap_general_preconfigure_fail_if_reboot_required: defaults to true +# +# for redhat.sap_install.sap_hana_preconfigure +# sap_hana_preconfigure_update: defaults to false +# sap_hana_preconfigure_fail_if_reboot_required: defaults to true +# sap_hana_preconfigure_reboot_ok: defaults to false +# +# Please note: if the variable sap_playbook_parameter_confirm is set to true, the playbook +# stops execution and waits for an input. If you want to run the playbook in +# non-interactive mode, leave the variable unset or set to false. + +- name: Prepare system for SAP HANA Installation + hosts: "{{ sap_hana_group | d((groups['all'] == []) | ternary ('localhost', 'all')) }}" + become: true + tasks: + - name: Ansible Role Configuration + ansible.builtin.debug: + msg: |- + The Hana setup runs with the following configuration + - 'Hostname : {{ sap_hostname | d(ansible_hostname) }}' + - 'IP Address : {{ sap_ip | d(ansible_default_ipv4.address) }}' + - 'Domain : {{ (sap_domain | d('') | length > 0) | ternary(sap_domain, ansible_domain) }}' + - 'Modify hosts : {{ sap_general_preconfigure_modify_etc_hosts | d('false') }}' + - 'Update OS : {{ sap_hana_preconfigure_update | d('false') }}' + - 'Auto Reboot : {{ sap_hana_preconfigure_reboot_ok | d('false') }}' + - 'Fail if reboot is needed: {{ sap_hana_preconfigure_fail_if_reboot_required | d('true') }}' + + - name: Pause Playbook to verify parameters + when: sap_playbook_parameter_confirm | d(false) + ansible.builtin.pause: + + - name: Perform the general SAP configuration + ansible.builtin.include_role: + name: community.sap_install.sap_general_preconfigure + + - name: Perform the SAP HANA specific configuration + ansible.builtin.include_role: + name: community.sap_install.sap_hana_preconfigure