You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/sap/automation/extensibility.md
+62-87Lines changed: 62 additions & 87 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,47 +1,46 @@
1
1
---
2
-
title: Extensibility for the SAP Deployment Automation Framework
3
-
description: Describe how to extend the SAP Deployment Automation Framework.
2
+
title: Extend SAP Deployment Automation Framework
3
+
description: Learn how to extend SAP Deployment Automation Framework by adding custom Ansible playbooks, repositories, packages, kernel parameters, and more.
# Customer intent: "As a cloud engineer, I want to extend the SAP Deployment Automation Framework by incorporating custom configurations and Ansible playbooks, so that I can tailor the deployment to meet specific operational requirements efficiently."
13
12
---
14
13
15
-
# Extending the SAP Deployment Automation Framework
14
+
# Extend SAP Deployment Automation Framework
16
15
16
+
[SAP Deployment Automation Framework](deployment-framework.md) (SDAF) provides default configurations for deploying SAP environments on Azure. When your deployment requires custom OS settings, extra pipeline stages, or organization-specific Ansible playbooks, you can extend the framework to match your operational needs.
17
17
18
-
Within the SAP Deployment Automation Framework (SDAF), we recognize the importance of adaptability and customization to meet the unique needs of various deployments. This document describes the ways to extend the framework's capabilities, ensuring that it aligns with your specific requirements.
18
+
In this article, you learn about the extensibility options available in SDAF, including custom Ansible playbooks, configuration-based extensions for repositories, packages, kernel parameters, and more.
19
19
20
-
Some of the common scenarios for extending the framework include:
20
+
Common scenarios for extending the framework include:
21
21
22
-
- Forking the Source Code Repository: One method of extending SDAF is by forking the source code repository. This approach grants you the flexibility to make tailored modifications within your own forked version of the code. By doing so, you gain control over the framework's core functionality, enabling you to tailor it precisely to your deployment objectives.
23
-
24
-
- Adding Stages to the SAP Configuration Pipeline: Another way to customization is by adding stages to the SAP configuration pipeline. This approach allows you to integrate specific processes or steps that are integral to your deployment workflows into the automation pipeline.
25
-
26
-
- Streamlined Extensibility: This capability allows you to effortlessly incorporate your existing Ansible playbooks directly into the SDAF. By using this feature, you can seamlessly integrate your Ansible automation scripts with the framework, further enhancing its versatility.
27
-
28
-
- Configuration extensibility: This feature allows you to extend the framework's configuration capabilities by adding custom repositories, packages, kernel parameters, logical volumes, mounts, and exports without the need to write any code.
29
-
30
-
Throughout this documentation, we provide comprehensive guidance on each of these extensibility options, ensuring that you have the knowledge and tools needed to tailor the SAP Deployment Automation Framework to your specific deployment needs.
22
+
-**Fork the source code repository** - Make tailored modifications in your own forked version of the code, giving you control over the framework's core functionality.
23
+
-**Add stages to the SAP configuration pipeline** - Integrate specific processes or steps that are part of your deployment workflows into the automation pipeline.
24
+
-**Run custom Ansible playbooks** - Incorporate your existing Ansible playbooks directly into SDAF so they run automatically as part of the deployment.
25
+
-**Extend configuration without code** - Add custom repositories, packages, kernel parameters, logical volumes, mounts, and exports by editing the `sap-parameters.yaml` file.
31
26
32
27
> [!NOTE]
33
-
> If you fork the source code repository, you must maintain your fork of the code. You must also merge the changes from the source code repository into your fork of the code whenever there is a new release of the SDAF codebase.
28
+
> If you fork the source code repository, you must maintain your fork. You must also merge changes from the source code repository into your fork whenever there's a new release of the SDAF codebase.
34
29
35
-
## Executing your own Ansible playbooks as part of the Azure DevOps orchestration
30
+
## Prerequisites
36
31
37
-
You can implement your own Ansible playbooks, which are automatically be called as part of the Azure DevOps 'OS Configuration and SAP Installation' pipeline.
32
+
- SAP Deployment Automation Framework [deployed and configured](get-started.md).
33
+
- An [Azure DevOps project configured for SDAF](configure-devops.md), if you plan to run custom Ansible playbooks in the pipeline.
34
+
- Access to the `sap-parameters.yaml` file in your SDAF workspace directory.
35
+
- Familiarity with [Ansible playbook syntax](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_intro.html), if you plan to create custom playbooks.
38
36
39
-
The Ansible playbooks must be located in a folder called 'Ansible' located in the root folder in your configuration repository. They're called with the same parameter files as the SDAF playbooks so you have access to all the configuration.
37
+
## Run custom Ansible playbooks in Azure DevOps
40
38
39
+
You can implement your own Ansible playbooks, which are automatically called as part of the Azure DevOps `OS Configuration and SAP Installation` pipeline.
41
40
42
-
The Ansible playbooks must be named according to the following naming convention:
41
+
The Ansible playbooks must be in a folder called `Ansible` in the root folder of your configuration repository. They're called with the same parameter files as the SDAF playbooks, so you have access to the entire configuration.
43
42
44
-
'Playbook name_pre' for playbooks to be run before the SDAF playbook and 'Playbook name_post' for playbooks to be run after the SDAF playbook.
43
+
The Ansible playbooks must follow this naming convention: `Playbook name_pre` for playbooks that run before the SDAF playbook and `Playbook name_post` for playbooks that run after the SDAF playbook.
45
44
46
45
| Playbook name | Playbook name for 'pre' tasks | Playbook name for 'post' tasks | Description |
@@ -58,11 +57,11 @@ The Ansible playbooks must be named according to the following naming convention
58
57
|`playbook_08_00_00_post_configuration_actions.yaml`|`playbook_08_00_00_post_configuration_actions_pre.yml`|`playbook_08_00_00_post_configuration_actions_post.yml`| Post Configuration Actions |
59
58
60
59
> [!NOTE]
61
-
> The playbook_08_00_00_post_configuration_actions.yaml step has no SDAFprovided roles/tasks, it's only there to facilitate `_pre` and `_post` hooks after SDAF has completed the installation and configuration.
60
+
> The `playbook_08_00_00_post_configuration_actions.yaml` step has no SDAF-provided roles or tasks. It's only there to facilitate `_pre` and `_post` hooks after SDAF completes the installation and configuration.
@@ -106,26 +105,24 @@ The Ansible playbooks must be named according to the following naming convention
106
105
- name: "Show how to run a command on just the 'SCS' and 'ERS' hosts"
107
106
ansible.builtin.command: "whoami"
108
107
register: whoami_results
109
-
when:
108
+
when:
110
109
- "'scs' in supported_tiers or 'ers' in supported_tiers "
111
110
...
112
-
113
111
```
114
112
115
-
## Updating the user and group IDs (Linux)
113
+
## Update user and group ID (Linux)
116
114
117
-
If you want to change the user and group IDs used by the framework, you can add the following section to the sap-parameters.yaml file.
115
+
If you want to change the user and group ID numbers used by the framework, add the following section to the `sap-parameters.yaml` file.
118
116
119
117
```yaml
120
118
# User and group IDs
121
119
sapadm_uid: "3000"
122
120
sidadm_uid: "3100"
123
121
sapinst_gid: "300"
124
122
sapsys_gid: "400"
125
-
126
123
```
127
124
128
-
You can use the `configuration_settings` variable to let Terraform add them to sap-parameters.yaml file.
125
+
You can use the `configuration_settings` variable to let Terraform add them to the `sap-parameters.yaml` file.
129
126
130
127
```terraform
131
128
configuration_settings = {
@@ -134,12 +131,11 @@ configuration_settings = {
134
131
sapinst_gid = "300",
135
132
sapsys_gid = "400"
136
133
}
137
-
138
134
```
139
135
140
-
## Adding custom host names for instances (Linux)
136
+
## Add custom host names for instances (Linux)
141
137
142
-
In addition to the host names generated by the framework, you can add custom host names for the instances in your SAP deployment. To do so, add the following section to the sap-parameters.yaml file.
138
+
In addition to the host names generated by the framework, you can add custom host names for the instances in your SAP deployment. To do so, add the following section to the `sap-parameters.yaml` file.
You can use the `configuration_settings` variable to let Terraform add them to sap-parameters.yaml file.
147
+
You can use the `configuration_settings` variable to let Terraform add them to the `sap-parameters.yaml` file.
152
148
153
149
```terraform
154
150
configuration_settings = {
155
151
custom_scs_virtual_hostname = "myscshostname",
156
152
custom_ers_virtual_hostname = "myershostname",
157
153
custom_db_virtual_hostname = "mydbhostname",
158
154
custom_pas_virtual_hostname = "mypashostname"
159
-
160
155
}
161
-
162
156
```
163
157
158
+
## Add custom repositories (Linux)
164
159
165
-
## Adding custom repositories (Linux)
160
+
If you need to register extra Linux package repositories on the virtual machines deployed by the framework, add the following section to the `sap-parameters.yaml` file.
166
161
167
-
If you need to register extra Linux package repositories to the Virtual Machines deployed by the framework, you can add the following section to the sap-parameters.yaml file.
168
-
169
-
In this example, the repository 'epel' is registered on all the hosts in your SAP deployment that are running RedHat 8.2.
162
+
In this example, the repository `epel` is registered on all the hosts in your SAP deployment that are running Red Hat 8.2.
If you need to install more Linux packages to the Virtual Machines deployed by the framework, you can add the following section to the sap-parameters.yaml file.
172
+
If you need to install more Linux packages on the virtual machines deployed by the framework, add the following section to the `sap-parameters.yaml` file.
182
173
183
-
In this example, the package 'openssl' is installed on all the hosts in your SAP deployment that are running SUSE Enterprise Linux for SAP Applications version 15.3.
174
+
In this example, the package `openssl` is installed on all the hosts in your SAP deployment that are running SUSE Linux Enterprise Server for SAP Applications version 15.3.
If you want to install a package on a specific server type (`app`, `ers`, `pas`, `scs`, `hana`) you can add the following section to the sap-parameters.yaml file.
182
+
If you want to install a package on a specific server type (`app`, `ers`, `pas`, `scs`, `hana`), add the following section to the `sap-parameters.yaml` file.
You can extend the SAP Deployment Automation Framework by adding custom kernel parameters to the SDAF installation.
206
193
207
-
When you add the following section to the sap-parameters.yaml file, the parameter 'fs.suid_dumpable' is set to 0 on all the hosts in your SAP deployment.
194
+
When you add the following section to the `sap-parameters.yaml` file, the parameter `fs.suid_dumpable` is set to 0 on all the hosts in your SAP deployment.
If you need to manage other services on the Virtual Machines deployed by the framework, you can add the following section to the sap-parameters.yaml file.
204
+
If you need to manage other services on the virtual machines deployed by the framework, add the following section to the `sap-parameters.yaml` file.
220
205
221
-
In this example, the 'firewalld' service is stopped and disabled on all the hosts in your SAP deployment that are running RedHat 7.x.
206
+
In this example, the `firewalld` service is stopped and disabled on all the hosts in your SAP deployment that are running Red Hat 7.x.
You can extend the SAP Deployment Automation Framework by adding logical volumes based on extra disks in your SDAF installation.
236
218
237
-
When you add the following section to the sap-parameters.yaml file, a logical volume 'lv_custom' is created on all Virtual machines with a disk with the name 'custom' in your SAP deployment. A filesystem is mounted on the logical volume and available on '/custompath.'
238
-
219
+
When you add the following section to the `sap-parameters.yaml` file, a logical volume `lv_custom` is created on all virtual machines with a disk named `custom` in your SAP deployment. A file system is mounted on the logical volume and available at `/custompath`.
239
220
240
221
```yaml
241
-
242
222
custom_logical_volumes:
243
223
- tier: 'sapos'
244
224
node_tier: 'all'
245
225
vg: 'vg_custom'
246
226
lv: 'lv_custom'
247
227
size: '100%FREE'
248
228
fstype: 'xfs'
249
-
path: '/custompath'
229
+
path: '/custompath'
250
230
```
251
231
252
232
> [!NOTE]
253
-
> In order to use this functionality you need to add an extra disk named 'custom' to one or more of your Virtual machines. For more information, see [Custom disk sizing](configure-extra-disks.md).
233
+
> To use this functionality, you need to add an extra disk named `custom` to one or more of your virtual machines. For more information, see [Custom disk sizing](configure-extra-disks.md).
254
234
255
-
You can use the `configuration_settings` variable to let Terraform add them to sap-parameters.yaml file.
235
+
You can use the `configuration_settings` variable to let Terraform add them to the `sap-parameters.yaml` file.
256
236
257
237
```terraform
258
238
configuration_settings = {
@@ -264,30 +244,29 @@ configuration_settings = {
264
244
lv = 'lv_custom'
265
245
size = '100%FREE'
266
246
fstype = 'xfs'
267
-
path = '/custompath'
247
+
path = '/custompath'
268
248
}
269
249
]
270
250
}
271
251
```
272
252
273
-
## Adding custom mount (Linux)
253
+
## Add custom mounts (Linux)
274
254
275
-
You can extend the SAP Deployment Automation Framework by mounting extra mount points in your installation.
255
+
You can extend the SAP Deployment Automation Framework by adding extra mount points in your installation.
276
256
277
-
When you add the following section to the sap-parameters.yaml file, a filesystem '/usr/custom' is mounted from an NFS share on 'xxxxxxxxx.file.core.windows.net:/xxxxxxxxx/custom.'
257
+
When you add the following section to the `sap-parameters.yaml` file, a file system at `/usr/custom` is mounted from a Network File Share (NFS) on `xxxxxxxxx.file.core.windows.net:/xxxxxxxxx/custom`.
The `target_nodes` attribute defines which nodes have the mount defined. Use 'all' if you want all nodes to have the mount defined.
267
+
The `target_nodes` attribute specifies which nodes have the mount. Use `all` to apply the mount to all nodes.
289
268
290
-
You can use the `configuration_settings` variable to let Terraform add them to sap-parameters.yaml file.
269
+
You can use the `configuration_settings` variable to let Terraform add them to the `sap-parameters.yaml` file.
291
270
292
271
```terraform
293
272
configuration_settings = {
@@ -302,20 +281,18 @@ configuration_settings = {
302
281
}
303
282
```
304
283
305
-
## Adding custom export (Linux)
284
+
## Add custom exports (Linux)
306
285
307
286
You can extend the SAP Deployment Automation Framework by adding extra folders to be exported from the Central Services virtual machine.
308
287
309
-
When you add the following section to the sap-parameters.yaml file, a filesystem '/usr/custom' is exported from the Central Services virtual machine and available via NFS.
288
+
When you add the following section to the `sap-parameters.yaml` file, a file system at `/usr/custom` is exported from the Central Services virtual machine and available via NFS.
310
289
311
290
```yaml
312
-
313
291
custom_exports:
314
292
path: "/usr/custom"
315
-
316
293
```
317
294
318
-
You can use the `configuration_settings` variable to let Terraform add them to sap-parameters.yaml file.
295
+
You can use the `configuration_settings` variable to let Terraform add them to the `sap-parameters.yaml` file.
319
296
320
297
```terraform
321
298
configuration_settings = {
@@ -328,14 +305,14 @@ configuration_settings = {
328
305
```
329
306
330
307
> [!NOTE]
331
-
> This applies only for deployments with NFS_Provider set to 'NONE' as this makes the Central Services server an NFS Server.
308
+
> Applicable only to deployments with `NFS_Provider` set to `NONE`, because this configuration makes the Central Services server an NFS server.
332
309
333
-
## Custom Stripe sizes (Linux)
310
+
## Custom stripe sizes (Linux)
334
311
335
-
If you want to the stripe sizes used by the framework when creating the disks, you can add the following section to the sap-parameters.yaml file with the values you want.
312
+
If you want to change the stripe sizes used by the framework when creating the disks, add the following section to the `sap-parameters.yaml` file with the values you want.
If you want to the default volume sizes used by the framework, you can add the following section to the sap-parameters.yaml file with the values you want.
333
+
If you want to change the default volume sizes used by the framework, add the following section to the `sap-parameters.yaml` file with the values you want.
0 commit comments