Book Image

OpenStack Administration with Ansible

By : Walter Bentley
Book Image

OpenStack Administration with Ansible

By: Walter Bentley

Overview of this book

Most organizations are seeking methods to improve business agility because they have realized just having a cloud is not enough. Being able to improve application deployments, reduce infrastructure downtime, and eliminate daily manual tasks can only be accomplished through some sort of automation. Packed with real-world OpenStack administrative tasks, this book will walk you through working examples and explain how these tasks can be automated using one of the most popular open source automation tools—Ansible. We will start with a brief overview of OpenStack and Ansible and highlight some best practices. Each chapter will provide an introduction to handling various Cloud Operator administration tasks such as creating multiple users/tenants, setting up Multi-Tenant Isolation, customizing your clouds quotas, taking instance snapshots, evacuating compute hosts for maintenance, and running cloud health checks, and a step-by-step tutorial on how to automate these tasks with Ansible.
Table of Contents (18 chapters)
OpenStack Administration with Ansible
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Preface
Index

Coding the playbook and roles


We will now create a role that allows us to update a single and/or multiple tenant(s) quota at one time. Updating a quota is a relatively simple two-step process. Step 1 is to record the tenant ID or user ID, in which you wish to update the quota. Then step 2 is to actually update the quota.

Since we are only creating a role in this example, we can start with the main.yml file within the role directory named adjust-quotas/tasks. The initial contents of this file will look similar to the following code:

---

- name: Retrieve tenantID
shell: keystone --os-username={{ OS_USERNAME }} --os-password={{ OS_PASSWORD }} --os-tenant-name={{ OS_TENANT_NAME }} --os-auth-url={{ OS_AUTH_URL }}
tenant-list | awk '/ {{ item }} / { print $2 }'
with_items: tenantname
register: tenantid

The first step of pulling the tenant ID is simple and straightforward with the use of the awk command and pipe (|) symbol. This approach is something you will see in a lot of the OpenStack documentation...