# Installing OpenStack CLI Client on Ubuntu 18.04

Before you install OpenStack CLI, you must install Python and the required compiler packages on Ubuntu.

Follow the steps given below to install Python and the required compiler packages.

1. Update the list of available packages.

{% tabs %}
{% tab title="Shell" %}

```bash
apt-get -y update
```

{% endtab %}
{% endtabs %}

2. Install GNU compiler library (GCC), Python, and the dependent libraries.

{% tabs %}
{% tab title="Shell" %}

```bash
apt-get -y install gcc libffi-dev libssl-dev python python-dev python-virtualenv virtualenvwrapper
```

{% endtab %}
{% endtabs %}

## Install OpenStack CLI

Follow the steps given below to install OpenStack CLI on a Ubuntu 18.04 host.

3. Load virtualenv variables.

{% tabs %}
{% tab title="Shell" %}

```bash
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
```

{% endtab %}
{% endtabs %}

4. Create a virtual environment.

{% tabs %}
{% tab title="Shell" %}

```bash
mkvirtualenv os_cli
```

{% endtab %}
{% endtabs %}

5. Upgrade pip to the latest version.

{% tabs %}
{% tab title="Shell" %}

```bash
pip install pip --upgrade
```

{% endtab %}
{% endtabs %}

6. Run following command to set up OpenStack CLI.

{% tabs %}
{% tab title="Shell" %}

```bash
pip install --upgrade --requirement https://raw.githubusercontent.com/platform9/support-locker/master/openstack-clients/requirements.txt --constraint https://raw.githubusercontent.com/openstack/requirements/stable/train/upper-constraints.txt
```

{% endtab %}
{% endtabs %}

OpenStack CLI is successfully installed, and ready to be used on the Ubuntu host.


---

# 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://docs.platform9.com/managed-openstack/cli-access/cli-access-install-cli-ubuntu.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.
