What is Ansible?
Start course
2h 10m

This course covers Ansible automation for SAP. We'll start off with introductions to both SAP and Ansible and then we'll present the use cases of automation with Ansible that we have built for SAP. You'll then be guided through a demonstration of an end-to-end deployment of SAP HANA and SAP applications like NetWeaver and S4/HANA.

Learning Objectives

  • Learn the fundamentals of what SAP and Ansible are and how they work
  • Learn how to patch SAP landscapes
  • Understand SAP HANA and SAP Netweaver maintenance
  • Automate the deployment of SAP S/4HANA databases with Ansible Tower
  • Automate the creation of SAP HANA and SAP S/4HANA Pacemaker Clusters
  • Automate the migration of SAP workloads from SUSE Linux Enterprise Server to Red Hat Enterprise Linux
  • Learn how to carry out SAP Application Server Autoscaling

Intended Audience

This course is intended for anyone who wants to learn how to learn how Ansible automation can be used with their SAP workloads.


To get the most from this course, you should have basic knowledge of Ansible and SAP.


So, now let's take a look at what Ansible is? What ansible does? What it can be used for and let's talk a bit about automation in general and just namely with Ansible.

So, what are today's IT challenges or some of the biggest challenges?

So, for the line of business is a very constantly challenged to deliver services faster at scale and more efficiently for developers. They need to develop loads of applications as fast as they can and with greater productivity and be able not just to produce the same type of applications but to think about what they want to do and how they can improve what they already have and how to yeah in general how to come up with great bright ideas in the shortest amount of time and for the IT operations in general they must provide infrastructure on demand that scales as needed. So, they have lots of requests for new servers and namely in the SAP world that's quite important because you need quite potent service quite powerful servers and you need to be constantly adding new resources or adding more memory etc. So that's the thing that consumes a lot of time of IT operations and of developers.

So, this is where all the automation comes in handy and if we look at some some surveys that IDC have conducted, there's a 74 percent of the people or the companies that expect to buy new management solutions to support open hybrid clouds and infrastructures. So, what this means is that the tendency in mostly in the SAP world is to move towards a hybrid cloud infrastructure. So that aligns with what we just said with what the developers are challenged for, where the IT operations are charged for. So, if they move to hybrid clouds these processes can be faster because they won't require so much time to provision new systems etc.

Well, first of all what is a hybrid cloud, for those of you who don't know that. So, you know what virtualization is and how workloads can be virtualized and have been virtualized for a long time like Amazon, like Google, like Microsoft. So, this is a public cloud and hybrid cloud are those clouds that customers tend to use more and more that have part of the systems on the public cloud part of the systems on private clouds. Okay! and to combine all that and make possible the communication between the systems that are on the public cloud and on the on the private cloud. So, these are today's IT challenges, the most important and automations can reduce all this and allow for a better use of resources. So, following this IDC surveys that we were talking about for example from the IT operations perspective, they say that in general the provisioning process has improved in 40 percent in companies that have started using any kind of automation. Some kind of automation. The change management has improved up to 44 percent and all the patching and maintenance of the servers that process has improved or has reduced the timing of 41 percent. For the developers, they say this increase or this improvement is even more dramatical because they have raised or yeah they have managed to produce 135 percent more applications in a year than when they were not using automation. So, yes automation is the key and it's of the utmost importance in today's IT world. What is needed and why again?

What do we need to automate or why we need to automate? Because of efficiency and optimization.

As we said, we need to be more efficient, be faster in delivering what the business needs what the customer needs. Then also for compliance and governance because the automation makes all the processes less prone to errors and we can control better with automation, who does what and we can make sure that each team has access only to the right resources that they need to use. So, someone from networking team won't be doing tasks that an SAP administrator does. So, it will be a separation but at the same time integration so it's automation gets rid of silos. Okay! because everything is done under the same umbrella but it ensures that teams which are not supposed to be doing some some tasks will not do them and then for service management and self-service as we said for all the provisioning etc. So, it's a great great advantage that a user now can provision its own system, if they need a system to test something. For example they need to test some super packages of SAP. Before going into production, they can just spin up a new system temporary system using Ansible automation or automation in general and then get rid of it. So, they don't need to be keeping those resources.

So, all this all these tasks used to be done manually and step by step. So, as we say for example if we wanted to provision an end-to-end application be it SAP or whatever, the first thing to be done was either use the bare metal or on-premise installations or create a VM. So, if the customer was using virtual machines they had to create the virtual machines, provision them, allocate the resources. Then they had to install the operating system on that virtual machine, they had to patch the operating system to the required levels and then deploy configure baseline so, saying okay! this is the operating system with the right patch purchase and the right applications that we're going to need for this type of application as we said for example for an SAP application. They had to deploy that baseline and consolidate it and test it and then apply security to it then on top of that deploy all the applications. So that was a a very long process and it could imply or have many bottlenecks because for example the team that's previously in the operating system is having issues with it.

So then the team there needs to deploy the application on top of it, will have to wait sometimes for weeks to do that. So as we said, an end-to-end process was much more complicated that what we can think think of these days and it could last weeks. For example to have a full-blown SAP application deployed. Okay! So, yeah instead of doing the same installation, same configurations, instead of repeating all that the philosophy now is to automate all that and have templates or create patterns and templates to do this automatically and be repeatable.

So that for example for if we know that for a certain type of SAP application for BW for example we need certain operating system with a search revision or version and some determine some yeah some searching packages.

We will have that we will create that as a template and we can repeat and build our systems really really really fast. So, this is the diagram that we can look at in comparison to the other one. So, instead of having just a pipeline that stop at each step or after each step we have a whole holistic approach and everything is done automatically with this with one click. So, here we can see that a system administrator needs to spin up a server with a or a pull of servers with a searching application running on top of it. So, he will just click on the button, push the button then the virtual machine will be created. The operating system will be installed on top of it with the patches that it needs applied, also the test to approve this server and to approve this baseline can be automated and can be defined in an automation language and then the deployment of the application will be done also automatically.

If we go to the Ansible use case for the Ansible domain as we have here in this image.

This symbol that you see where the push the button action is, is the Ansible tower.

So that's the platform that we will look into in more detail later on and it will have the playbook. So in Ansible all the actions that we want to do, all the steps in a configuration, a process or whatever process, will be written in playbooks. Okay! So, this Ansible tower has those playbooks that we can see, the system admin is adding the playbooks that he needs to the action that needs to be taken and then as we said that administrator will push the button in ansible tower and all the workflow all the pipeline will be done automatically so no bottlenecks will be there and that's one of the main main advantages instead of having to wait for this team to provision the virtual machine or this team to install the or patchy operating system. It will be done in just a single workflow. So, this deployments of applications can be reduced from weeks as we said to just a few hours or even less than one hour depending on the type of application that we are developing. So, why Ansible and why it's the best choice compared to other automation technologies and platforms. Because first of all it's very simple. So, if you look at how the code is written, we will take a look at it later on.

It's very very similar to human language so we don't really need previous coding skills for that. It is very very fast to learn to learn Ansible because it's very intuitive and it can be used by every team in the IT landscape or IT department and yeah it's very easy to become productive with Ansible. It's very powerful as well because you can deploy applications, you can manage the network, install applications on top of it not only develop them. So, basically it orchestrates everything and also very very big advantage of it is the fact that it's agentless. So it doesn't need to install agents on on the servers that are going to be managed by it. So that makes it less prone to exploits to hacking explodes for example and it just connects with SSH protocol, secure SSH protocol to the servers. There are Linux or Unix based and for Windows servers it uses WinRM Okay! so it is very robust. So, as we were saying what is Ansible automation. So, the Ansible project is an open source community effort sponsored by Red Hat. That's another good thing that is open source and it's open to a very very big community. What does it mean?

Then that applications or solutions in Ansible are being developed by thousands and thousands of people around the world. So, most likely for anything that you would need in your company you will already find some solutions developed in Ansible that you can customize, besides that you can for sure develop your own solutions very easily as we said because this is a very simple language and another good thing of it being an open source community project is, that any kind of issue that you might have with Ansible can be solved very very quickly because there will be lots of people looking into it if you post it on Github or whatever in any type of of a community forum. For Ansible there'll be lots of people helping out so that's a very good thing.

We can see a simple Ansible playbook as we said the files and the code of Ansible is written in playbooks and as you can see at first glance it looks like a human language as we said we are having a task that installs and starts and starts apache server.

So, it's as you can see it's very very simple. So, we're using modules, we will see what Ansible, what module is to install the packages that are needed in the operating system.

We will copy the files that are needed and we will just install and install the service. There's a difference to be made between just Ansible Engine. 

So, Ansible engine is the product that allows you to interpret and run Ansible code. So, you can do it with command line. It's just running on your server of preference or whatever you need to run it and then there's another product that we will see in more detail as well. That's the Ansible Automation platform or Ansible Tower.

That is a way to orchestrate everything that you build with Ansible and also way to manage all your IT infrastructure from just one point which is very interesting as well.

Ansible ships with more than two thousand native modules. So, the Ansible modules are using APIs for to communicate with the different solutions with different cloud providers, with operating systems etc. So, for example for cloud Ansible has modules for all the major hyperscalers or public cloud vendors like AWS as your Google cloud etc but not only that it also has loads of modules for virtualization. So, to manage VMware, to manage RHV, to manage OpenStack, OpenShift also combines perfectly well with containers. So, namely with OpenShift and in terms of operating systems it talks to Unix, Linux, Solaris, Windows. It can use any kind of shell.

So, yeah you can interact with any server, in any installation type that you might have.It also has lots of modules to communicate with network devices and their operating systems. So, like Big Switch, like Cisco devices, like Arista, Juniper and it also integrates with with management tools and like IRC or communication tools like Jira in terms of ticketing. So, you can integrate Ansible and create tickets when your solution or your Ansible solution detects that there's some issue with one of your systems who is completely integrated with all the bits and of the IT landscape. It's good to say or it's important to say as well that it has been developed following the DevOps technologies and methodologies just like OpenShift for containers, so that's why they connect and they combine together that well and that's the main thing because many companies are adopting those techniques, those methodologies the DevOps methodologies of development and it's the perfect solution to use that in your company is to utilize Ansible.

So, to summarize what we can do with Ansible as we said we can do configuration management. So provisioning the virtual machines, provisioning all our systems and configure them. We can configure the Firewalls, the Servers, the Load Balancers, Storage, anything.

We can orchestrate with Ansible as we were saying so to manage all the communications between your all your applications, all your servers. So, it's also used for application development as we said since it follows the philosophy of DevOps, it's the best way to integrate and to carry out all your all the deployments of your applications. You can also as I mentioned before a carrier and defined test automated test for all your applications and for all your solutions that you have, a provision as we set up for virtual machines of systems and continuous delivery because as we said you can make your provisioning and your end-to-end deployments of systems and applications repeatable and scalable and also for security and compliance because it has a lot of modulus centered in security so to the route security and the Ansible Tower or Ansible platform product that we mentioned that we will see more in detail, adds a very very robust layer of security, a user in role based access control.

About the Author
Learning Paths

Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.

He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.

Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).