# OpenStack

OpenStack is an open-source private cloud platform. It provides IaaS and allows a provider to run their own private cloud instead of relying on a public cloud. A service provider could use OpenStack as the NFVi in an NFV architecture.

OpenStack has a modular design in which each component is a separate service, and you can load services as you need them. Some common services are:

* Nova - Computer service
* Cinder - Block storage
* Swift - Object storage
* Neutron - Networking service
* Horizon - Dashboard UI service
* Glance - Image management
* Heat - Orchestration

Interestingly Cisco uses OpenStack for VIRL and CML.

> Cisco Modeling Labs uses OpenStack's clustering capability to allow you to run simulations across multiple servers, with a single point of control.

From: <https://www.cisco.com/c/en/us/td/docs/cloud_services/cisco_modeling_labs/v130/installation/guide/admin/b_cml_install_sys_admin_13/b_cml_install_sys_admin_13_chapter_0101.html>

### Lab <a href="#id-27951ef8-5775-4b4f-bf11-b88589269260" id="id-27951ef8-5775-4b4f-bf11-b88589269260"></a>

I find that I generally understand products best when I spend hands-on time with them. Spinning up an OpenStack instance is very simple. I installed DevStack onto an Ubuntu server in CML. I simply followed this guide: <https://docs.openstack.org/devstack/latest/>. The only thing I had to do was create the **local.conf** file. It takes about 20 minutes for the install to complete. While it was running I watched the DevNet session on youtube, which is linked at the end of this article.

Once DevStack is done installing, you can navigate to the webpage using http\://\[*server ip*]. Log in with username=admin and the password you set in the **local.conf** file.

You can easily launch VMs under Compute - Instances:

<figure><img src="/files/X5A8YfJRLnISXWe92Pqz" alt=""><figcaption></figcaption></figure>

DevStack comes with the cirros image which is a very stripped-down version of Linux. You can use this to quickly create VMs and test reachability between them on a shared network. I found that navigating the GUI is quite natural and intuitive, even without reading the admin guide.

<figure><img src="/files/nRsqoeW0GFCMOROjv2gO" alt=""><figcaption></figcaption></figure>

You can also try associating a floating IP with the VM. In my lab, I found that I cannot ping the floating IP from my ubuntu server, however the VM can ping out to the internet. OpenStack NATs the VM to the floating IP that I associated with it. I then created a new VM, only belonging to the private network, and to my surprise it can ping the internet *and* I can ping its NAT public IP. This is *without* a floating IP. I didn’t spend much more time to investigate any further. OpenStack seems quick to setup in a basic sense, but complex once you dive deep into it, which I believe is not necessary for the CCNP.

### Further Reading/Watching <a href="#d28481ea-8cf1-4e41-afe2-1e6b55b06ea1" id="d28481ea-8cf1-4e41-afe2-1e6b55b06ea1"></a>

<https://www.openstack.org/software/>

\
[https://www.youtube.com/watch?v=IseEhw-Dxrc](https://www.youtube.com/watch?v=IseEhw-Dxrc\&t=5s)

* General overview of OpenStack

\
<https://www.youtube.com/watch?v=ecc2KzjBoO8&ab_channel=CiscoDevNet>

* Very thorough and easy-to-follow DevNet session from Cisco Live. It introduces OpenStack and guides you through spinning up VMs.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ccnp-sp.gitbook.io/studyguide/misc/virtualization/openstack.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
