The Certified Openstack Administrator (COA) exam is hands-on, meaning that you will get access to a live Openstack environment and you will be asked to solve a number of questions either via the console or the Openstack GUI (Horizon).
The skills/contents you need to master to pass the exam are listed here. This repo intends to define a learning path for COA takers. In addition, a summary and/or cheatsheet for each examp topic is included.
-
Get familiar with the exam structure, number of questions, duration, contents, etc. For this step I'd suggest the below resources:
-
Get a solid theoretical background about the Openstack architecture, core services and projects, etc. For this step I'd suggest the below resources:
-
Udemy course "Preparing to Certified OpenStack Administrator Exam Course"
At the time of this writing (Nov 2021) the course is a bit outdated. Nonetheless, I believe it offers an excellent theoretical background that should be more than enough to pass the exam. In addition, it gives you a useful set of exercises to practice for the exam.
-
Complement the above course with any of the following books (I'd suggest reading the most recent one):
- "Certified Openstack Administrator Study Guide" - Andrei Markelov
- "Preparing for the Certified OpenStack Administrator Exam" - Matt Dorn
If you're already familiar with Openstack, any of the above books plus hands-on practice on test labs (to work on task execution speed) may be even enough to tackle the exam (without going through the Udemy course).
-
Review Openstack docs if you feel that some topics need further explanation.
-
The Exam contents section in this repo include links (to official Openstack documentation) and content targetting most of the knowledge you'll need to master for the exam.
-
-
Practice...Practice...Practice!
Being performance-based, the COA exam will test your ability to perform day-to-day operations on an Openstack cloud. There are two key limitations on the exam: time and knowledge-base. In previous exam you were allowed to use the Openstack docs as a reference but that's no longer the case. As a consequence you need to master both the CLI and GUI-based methods to perform all the tasks listed in COA exam topics.
Luckily, you can still use the embedded help on both the CLI and the GUI tools. I'd recommend to get familiar in the use of the CLI help (
--help
option for theopenstack
CLI) to avoid memorizing all the available options. Being proficient in using the CLI tool help will save you quite a lot of time.To gain hands-on knowledge of Openstack I'd suggest leveraging DevStack which can be used to deploy a fully-functional Openstack cloud in a single host.
A (perhaps) simpler method to get a single-node lab up and running can be found in this tutorial about Sunbeam.
Other useful resources to practice are:
Overall, I would suggest setting up a single-node deployment and repeatedly going through the exercises included in the course and repo below:
NOTE: the course full set of exercises can be found in the
practice-exercises
folder in this repo. -
Exam readiness check
Overall, you can consider yourself ready for the exam if:
- You have thoroughly reviewed and practiced the COA exam topics
- You are able to perform these COA exam tasks:
-
without referring to the online doc for every task
-
without referring to personal notes or cheat sheets
-
without referring to content from a class
-
without relying on the online help
-
with minimal help from man pages
If you use help (
--help
), do you understand the output? Practice using--help
or-h
as the only tool available to get through any task.
-
- Immediately report issues to the proctor, e.g., if you notice the CLI is slow and affecting your speed to type and modify commands.
- Read each question carefully and answer the questions you're familiar with first.
- Use the data from the question (e.g., instance/project names, flavour specs) to avoid wasting time typing and prevent typos. According to the handbookyou cannot copy/pastebut I was allowed to use the select text / middle-click to paste method.
- You're allowed to open a test-app (notepad), use it to track skipped/non-completed/flagged questions so that you can get back to them later. In addition you may be allowed to have a blank sheet of paper and pen/pencil on your desktop and you could use that for the same purpose.
- Ensure that you're fully aware of any question requirements (e.g., avoid using a specific IP range, compulsory use of either the CLI or the GUI).
- Don't overthink the questions, e.g., flavours are accessible across all projects unless access is specified.
- Consider using the CLI for the entire exam but only if you're proficient with it. Fewer context switches might make things easier and less error-prone. However, if for some reason you're more confortable with a GUI, then stick to Horizon, most of the tasks can be done there. However, keep in mind that you may be forced to do some tasks on either the CLI or the GUI. Be aware of what method you're using and ensure it matches the question requirements and pratice all contents for both CLI and GUI until you're comfortable with both.
- Some tasks can only be executed via CLI, make sure you know which ones.
Here is a non-exhaustive list of "CLI-only" tasks:
- Managing
domains
- Managing
endpoints
- Downloading, sharing
glance
images - Managing
swift
ACL rules and expiration dates - Managing quotas (not all project quotas can be managed using Horizon, e.g., service quotas)
- Managing
- Check, check and check again to ensure your work has met the criteria, even if you know for a fact that your command/steps were correct.
- Based on my experience, the exam can be completed in half the time you're allowed to use (3h at the time of this writing). In any case, I'd suggest you save at least 30min to double check your work.
- For any tasks where you need to use floating IPs from within a project, create the floating IPs before any other internal network-related tasks.
- If you're asked to create the provider/public network, make sure you do that before any other network-related tasks (floating IP tasks should follow this one). To ensure this, you may want to start by skimming through the entire exam right after it is launched. This won't take long and it may save you time if you hit bugs for not creating the provider network first.
See below the list of contents you need to master for the COA exam (at the time of this writing).
Each section includes references pointing to the latest Openstack release at any time (at the time of this writing is Xena). This means that if you want to check the documentation for a specific Openstack release other than the latest one, most of the time you will only need to change the word latest on the link. Example:
https://docs.openstack.org/horizon/latest/user
change the above link to:
https://docs.openstack.org/horizon/ussuri/user
- Manage and create domains, projects, users, and roles
- Understand the differences between the member and admin roles
- Create roles for the environment
- Create and manage policy files and user access rules
- Create and manage RC files to authenticate with Keystone for command line use
2. Compute
- Create and manage flavors
- Create and manage compute instances (for example, launch, shutdown, terminate)
- Generate and manage SSH keys for use when connecting to instances
- Access an instance using an SSH key
- Configure an instance with a floating IP address;use it to connect to the instance
- Create instances with security groups
- Manage Nova host consoles (VNC, NOVNC, spice)
- Manage instance snapshots
- Manage instance quotas
- Use the command line client to upload and manage files to Swift containers
- Manage permissions on a container in object storage
- Create and manage volumes
- Attach volumes to instances
- Create a new Block Storage volume and mount it to a Nova instance
- Manage volume quotas
- Backup and restore volumes
- Manage volume snapshots (for example, create, list, recover)
5. Networking
- Manage network resources (routers, networks, subnets)
- Create external/public networks
- Create project networks
- Create project routers
- Attach routers to public and project networks
- Manage network services for a virtual environment
- Manage network quotas
- Manage network interfaces on compute instances
- Create and manage project security groups and rules
- Assign security group to instance
- Create and manage floating IP addresses
- Assign floating IP address to instance
- Detach floating IP address from instance