Skip to content
Snippets Groups Projects
Commit 1f766e70 authored by francisc.mendonca's avatar francisc.mendonca
Browse files

Updated README - New readme + man page for python tool

parent 09bd115a
No related branches found
No related tags found
No related merge requests found
# Lab-OS-Python
# OpenStack's Python CLI
This is a boilerplate that replicates the exercise done in the [Lab-OS-CLI](https://githepia.hesge.ch/lsds/teaching/bachelor/cloud-and-deployment/lab-os-cli).
OpenStack provides a Python SDK that simplifies interactions with OpenStack cloud services. This tutorial will guide you through the installation of the SDK, creating a connection to your OpenStack cloud, and managing virtual machines (VMs) using the Python CLI.
## NAME
**lab-os** - Python script to manage OpenStack Virtual Machines
## Installation
## SYNOPSIS
`lab-os.py` [**create**|**destroy**|**start**|**stop**|**snapshot**]
To get started, you need to install the OpenStack SDK. This can be done easily with `pip`, the Python package installer. Run the following command in your terminal:
## DESCRIPTION
`lab-os.py` is a Python script designed to help manage OpenStack Virtual Machines with simple commands.
```bash
pip install openstacksdk
```
## OPTIONS
This command fetches the OpenStack SDK from the Python Package Index (PyPI) and installs it on your system.
### **create**
Create a new virtual machine. This command returns a unique **ID** that can be used to manage the VM in subsequent commands.
## Creating a connection
### **destroy ID**
Destroy an existing virtual machine using the provided **ID**.
Once the SDK is installed, you can establish a connection to your OpenStack cloud. You can do this using a single line of code if your environment is set up correctly, or you can specify all the necessary parameters explicitly. Here's how you can create a connection:
### **start ID**
Start a virtual machine using the provided **ID**.
```python
conn = openstack.connect(engine='engines')
# or
conn = openstack.connect(
auth_url="https://keystone.cloud.switch.ch:5000/v3",
project_name="<YOUR PROJECT NAME>",
username="<YOUR USERNAME>",
password="<YOUR PASSWORD>",
region_name="ZH",
domain_name='default',
version='2'
)
```
### **stop ID**
Stop a running virtual machine using the provided **ID**.
In the first example, `engine='engines'` assumes that you have your cloud configuration defined in an environment variable or a configuration file. In the second example, you are explicitly providing the authentication URL, project name, username, password, region name, and other parameters needed for the connection.
### **snapshot ID**
Create a snapshot of the current state of the virtual machine using the provided **ID**. This command also returns a unique **ID** for the snapshot.
Make sure to replace `<YOUR PROJECT NAME>`, `<YOUR USERNAME>`, and `<YOUR PASSWORD>` with your actual credentials. This connection will allow you to interact with various OpenStack services.
## EXAMPLES
## VM Management
### Create a new virtual machine:
```python
# Run the Python script to create a VM
python lab-os.py create
```
This will return a unique ID for the newly created virtual machine.
After establishing a connection, you can manage virtual machines in your OpenStack environment. Below is an example of how to create a new VM:
### Start a virtual machine:
```python
# Start the virtual machine using the returned ID
python lab-os.py start <ID>
server = conn.compute.create_server(
name='Openstack-Instance',
image_id='856becdd-3df9-488e-af98-871b98624b2c', # From: https://engines.switch.ch/horizon/project/images
flavor_id='2', # 2 = m1.small. Use: openstack --os-cloud <cloud-name/normally is engines> flavor list
networks=[{"uuid": 'c34c17a4-341e-463e-ab52-eed4817387ad'}] # From: https://engines.switch.ch/horizon/project/networks/, select the network you want to use, and retrieve the ID
)
```
This starts the virtual machine associated with the provided **ID**.
### Stop a virtual machine:
```python
# Stop the virtual machine using the returned ID
python lab-os.py stop <ID>
```
This stops the virtual machine associated with the provided **ID**.
In this code snippet:
### Create a snapshot of a virtual machine:
```python
# Create a snapshot using the VM ID
python lab-os.py snapshot <ID>
```
This creates a snapshot of the virtual machine associated with the provided **ID** and returns a unique **ID** for the snapshot.
- `name` specifies the name of the VM you want to create.
- `image_id` is the identifier for the image you want to use; you can find available images in your OpenStack dashboard under the images section.
- `flavor_id` refers to the VM flavor, which determines the resources allocated to the VM. You can list available flavors by using the OpenStack CLI command.
- `networks` is a list of networks that the VM will connect to, specified by their UUIDs, which can also be found in the OpenStack dashboard.
Once the server is created, you may want to delete it later. Here’s how you can do that:
### Destroy a virtual machine:
```python
# Destroy the virtual machine using the returned ID
python lab-os.py destroy <ID>
conn.compute.delete_server(server)
```
This destroys the virtual machine associated with the provided **ID**.
## AUTHOR
Written by Francisco Mendonca.
This line of code will delete the VM you created earlier. Make sure to manage your resources effectively to avoid unnecessary charges.
With this setup, you can start using the OpenStack Python SDK to automate your cloud infrastructure management tasks.
## COPYRIGHT
This is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License.
To find out more about OpenStack's Python SDK, visit [this page](https://docs.openstack.org/openstacksdk/latest/user/index.html).
\ No newline at end of file
# Lab-OS-Python
This is a boilerplate that replicates the exercise done in the [Lab-OS-CLI](https://githepia.hesge.ch/lsds/teaching/bachelor/cloud-and-deployment/lab-os-cli).
## NAME
**lab-os** - Python script to manage OpenStack Virtual Machines
## SYNOPSIS
`lab-os.py` [**create**|**destroy**|**start**|**stop**|**snapshot**]
## DESCRIPTION
`lab-os.py` is a Python script designed to help manage OpenStack Virtual Machines with simple commands.
## OPTIONS
### **create**
Create a new virtual machine. This command returns a unique **ID** that can be used to manage the VM in subsequent commands.
### **destroy ID**
Destroy an existing virtual machine using the provided **ID**.
### **start ID**
Start a virtual machine using the provided **ID**.
### **stop ID**
Stop a running virtual machine using the provided **ID**.
### **snapshot ID**
Create a snapshot of the current state of the virtual machine using the provided **ID**. This command also returns a unique **ID** for the snapshot.
## EXAMPLES
### Create a new virtual machine:
```python
# Run the Python script to create a VM
python lab-os.py create
```
This will return a unique ID for the newly created virtual machine.
### Start a virtual machine:
```python
# Start the virtual machine using the returned ID
python lab-os.py start <ID>
```
This starts the virtual machine associated with the provided **ID**.
### Stop a virtual machine:
```python
# Stop the virtual machine using the returned ID
python lab-os.py stop <ID>
```
This stops the virtual machine associated with the provided **ID**.
### Create a snapshot of a virtual machine:
```python
# Create a snapshot using the VM ID
python lab-os.py snapshot <ID>
```
This creates a snapshot of the virtual machine associated with the provided **ID** and returns a unique **ID** for the snapshot.
### Destroy a virtual machine:
```python
# Destroy the virtual machine using the returned ID
python lab-os.py destroy <ID>
```
This destroys the virtual machine associated with the provided **ID**.
## AUTHOR
Written by Francisco Mendonca.
## COPYRIGHT
This is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment