Service Catalog

Build a Service Catalog to create and delete users

In this lab we will use an Ansible Playbook to create a local user in CloudForms. This example will also demonstrate how we can define a retirement process as well. In CloudForms’ understanding of complete life cycle management, every object should have a provisioning and a retirement workflow.

Create a Service Catalog Item for the Playbook

  1. Navigate to Services -> Catalogs

    navigate to Services Catalogs

  2. Click on Catalog Items in the accordion on the left

    navigate to service catalog items

  3. Click on Configuration -> Add a New Catalog Item

  4. Select Ansible Playbook as “Catalog Item Type”

    add catalog item ansible Playbook

  5. Fill out the form to define the service catalog item:

    Name: Create User

    Description: Order this catalog item to create a new user

    Display in Catalog: Yes (check the box)

    Catalog: Ansible

    Repository: Github

    Playbook: playbooks/SimpleExample/create-user.yml

    Machine Credentials: CFME Default Credentials

    In the box Variables & Default Values we can enter the variables the Playbook requires:

    Variable: create_user_name

    Default: example

    Click on the little plus icon (+) to save the variable. Repeat the process for the second variable:

    Variable: create_user_password

    Default: secret

    Click on the little plus icon (+) to save the variable.

    Dialog: create new

    Dialog name: create-user

    create user service dialog

  6. Click on the tab Retirement to switch to the second page of the form.

    Repository: Github

    Playbook: playbooks/SimpleExample/delete-user.yml

    Machine Credentials: CFME Default Credentials

    There are no variables needed for retirement and the Variables & Default Values can be left empty.

    create user service dialog retirement

  7. Click on Add to save the catalog item

Order the “create user” Service Catalog Item

To make sure everything works as expected, we want to test the Catalog Item we just created.

  1. Navigate to the Service Catalog by clicking on Services -> Catalogs

    navigate to service catalog

If you followed the instructions by the letter, you’re already in this part of the UI.

  1. Click on Service Catalog in the accordion on the left

  2. Click on the Catalog Item you just created:

    navigate to service catalog

  3. Click Order

  4. The default values in the form can be left alone. Optionally you can specify a different user name and password

    create user order form

  5. Click Submit

    After clicking “Submit” you will be redirected to the Request Queue.

    request queue after ordering create user

Monitor create user Playbook execution

When executing an Ansible Playbook with the embedded role in CloudForms, a “Service” object is automatically created. This service object gives us more details about the executed Playbook. It provides the output of the Playbook and it allows us to trigger retirement.

  1. Navigate to Services -> My Services

    navigate to my services

  2. You should see a new tile representing the Ansible Playbook Service you just ordered

If you don’t see the tile yet, wait a minute and try again.

![create user service tile](/img/summit-fy19-my-service-create-user-tile.png)
  1. After clicking on the icon, we can see more details about the service which was created

    create user service details

    Since this Service does not create a Virtual Machine, the box “VMs” will always say “No Records found”

  2. Click on the Provisioning tab to see the output of the Ansible Playbook

    ansible Playbook output

    If the Playbook execution has not completed, you can click the reload icon to refresh the information. The Reload icon is represented by a little arrow, left of the Configuration menu.

    reload icon

If the Playbook execution has not started yet, you might not see any details in the “Provisioning” tab. Wait a minute and reload once more.

Verify Playbook results

To make sure the user was really created, follow these steps.

  1. Click on your username on the top right and click on Configuration

    navigate to configuration

  2. Click on Access Control in the accordion on the left

    navigate to access control

  3. Click on Users and you should see the user you just created (in this screenshot the user is called “example”)

    user example exists

If you want, you can log out of CloudForms and try to log in with the user you just created. Click on your username on the top right and Logout.

![logout](/img/summit-fy19-logout.png)