 Hello, everyone. Hello. Hi, my name is Raul Micis. I work for Rehat Switzerland. Hello. Thank you for joining us today. My name is Andres Valero. I work as a solution architect in Rehat. Today, we are going to talk to you how to use CloudForms plus Ansible Tower for automating and deploying applications on OpenShift or any other tasks that will make your daily job easier. So there is no need to reinvent the wheel. When you need to do something, probably somebody has already done something similar. So you can build up on that. You can, in the case of Ansible, you can go to the Ansible Galaxy, see if there is a role that does what you want or similar to what you want, and then improve it. Your mother was right, it's better to share. Feed by your changes, when you make any change, you can feed it back to the community so somebody else will benefit from your work. And you will also benefit because probably you will find somebody who will improve your change, I mean improve your software and so on. So when we create new services, when we try to make other users life easier, we want to use a service catalog. We want to use automated tasks to make it simpler. So the idea is trying to make everyone self-sufficient and making the services easier to consume. But not only that. When you prepare these services, you want to make sure that everything is working as expected and everyone can consume these services without problems. So try the services before delivering the services to your colleagues or to your company. And now we're going to share you a little demonstration about all this is what about. So we record a video to be safe in case the internet connection is not very good. So here we start. So here we are going to clone the existing repository with the software we want, with the playbooks we want. Then we are going to go to our Git repo and also clone it. And now we are copying the playbooks we want into our repository. Then we will make some changes to it. You can see we're just adding a variable for the router and another task to create the router. And then we are going to commit these changes to our repo. So now they are in the repo. We push them to the remote repository. And now we are going to see them in the. So now we are going to create a template in the cVolTower to be able to use these playbooks. First we import the repository in projects. We just fill in the details. So we copy the URL, give it a name, and save it. And now we are going to create a template for running it. The name, we select the inventory, which is localhost, because it's only going to do API calls. And we select the repo we just created, which contains the playbooks. Select the playbook we want. And then we need the credentials for the ansible vault to decrypt the ansible vault. It contains the credentials to connect to OpenShift. And we just save it. And now we are going to, the changes we made, we are going to feed them back to the original Git repository, so to the original project. We can, first, at the beginning we used the command line, but you can also use the UI from GitHub. So just edit, just copy and paste all the changes. I mean, well, the whole playbook. We only have 10 minutes, so we are trying to be a bit faster. So here we copy and paste the changes. Now we give some meaningful description of the change. We create a pull request. So here you can see what's changed. Then the other person will see the pull request. So now we are in the other session with the other user, the owner of this other repository. Then he sees there is a pull request. And he just click Merge, and the changes are on the other repository. So with this, we already share what we did, so others can benefit. And now we do the pull, and then we will get the, we'll see the changes are there. The route is there. The variable for the route is there as well. Now we're going to explain you how to create a service catalog item into CloudForms by using the template that Raul created before in Ansible Tower. So we go to our template. Tower is a configured provider into CloudForms. From there, we create a new dialog for the new catalog item we're going to use. The dialog is important, because if you need any variables and information to fill in this template, you're going to use a dialog for doing so. Once the dialog is created, it is a pretty standard dialog. So we want to custom the dialog and make it more appropriate for this use case. So what we are going to do is to hide the limit, since it makes no sense for this use case. And we are going to set a checkbox to confirm that we want to deploy the application in OpenShift. Once the dialog is finished, then we're going to create the catalog item. We save all the dialog changes. And now in catalogs, we create the new catalog item. We select Ansible Tower, since our template is located. We provide a meaningful name for our catalog item. We are going to deploy reverse words applications. Select the catalog. With dialog, we are going to use provider. And from the provider, we select the template. This is the administration UI. So later on, we will use this catalog item with an unprivileged user in order to make sure that any user can use this catalog item. So now we are going to finish the catalog. And later on, we are going to apply a tag for making sure that certain group of users in our organization can use it. Now we are applying the tag for the communication department. So anyone inside the communication department will be able to access this service catalog and deploy reverse words applications. Now we log with my user too. It's not administration. It's a basic user with only permission to see certain services. In this case, only the reverse words deployment service. And now we are going to order the service. So we provide a name. We confirm that we're going to deploy the application. And we submit the service. When we order the service, what we are doing is calling the Tower API and launching the reverse words template. So when the playbook finishes, our application is deployed in OpenShift. As you can see in the OpenShift console, we have a pod running with the reverse words application. We also have a new road that is the new modification that Raul introduced in the previous playbook. And we also have the new deployment created for the application. This is the endpoint we're going to use to call reverse words application. And it's a really simple Go application that the only thing that it does is when you call the API with a word, it turns you the reverse word. So this is a really easy and simple use case. But for 10 minutes, we didn't have much time to do something nicer. So I hope you like it. Thank you.