https://github.com/groda/openstack-pals
The Open Stack Personal Automation and Launch Suite
https://github.com/groda/openstack-pals
cli command-line-tool multicloud openstack openstack-clients private-cloud
Last synced: about 2 months ago
JSON representation
The Open Stack Personal Automation and Launch Suite
- Host: GitHub
- URL: https://github.com/groda/openstack-pals
- Owner: groda
- License: mit
- Created: 2024-11-24T21:13:14.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-01-31T11:25:36.000Z (4 months ago)
- Last Synced: 2025-01-31T12:26:09.536Z (4 months ago)
- Topics: cli, command-line-tool, multicloud, openstack, openstack-clients, private-cloud
- Language: Shell
- Homepage:
- Size: 39.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OpenStack Personal Automation and Launch Suite
## Description
This project provides a shell script with a menu-driven interface to support common tasks using the OpenStack command-line API client. It aims to simplify and automate frequent OpenStack operations, while also serving as a learning tool to deepen understanding of OpenStack and command-line scripting.
The idea for this project came from my desire to create a shell tool to learn specific shell commands—essentially a self-evolving, learning-based personalized interactive tutorial command (in this case, I wanted to explore the `openstack` CLI command). Although I haven’t implemented that tool yet, this script emerged during the process. Another source of inspiration was the vintage IBM AIX interface for system administration, which I greatly appreciated.
> [!NOTE]
> Important Notice:
> This application mainly operates in **read-only mode**. It is designed as an OpenStack client for inspecting and interacting with your OpenStack environment without making any modifications to your infrastructure.
>
> The only way to modify your OpenStack infrastructure in this app is by opening an OpenStack shell through the "Open OpenStack Shell" menu item and typing your commands.
>
> The **worst-case scenario** is that the application may not function as intended due to misconfigured connections or incorrect settings. In such cases, no changes will be made to your OpenStack environment.## Installation
To clone this repository and set up the project locally, follow these steps:
1. Clone the repository:
```bash
git clone https://github.com/groda/openstack-pals.git2. Navigate into the project directory:
```bash
cd openstack-pals3. Show an usage message
```bash
./openstack-pals.sh -h4. Run
```bash
./openstack-pals.sh## Configuration Files
The script creates and manages two files in your $HOME directory to store connection parameters (such as username and project name). **These files are automatically managed by the script and do not need to be edited manually**.
- `$HOME/.pals` – The main configuration file containing your connection parameters.
- `$HOME/.pals.bak` – A backup file that stores the history of previous configurations.These files **do not contain any passwords**. They are automatically updated by the script during execution.
## Credentials File
The script requires a **credentials file** for establishing a connection with your OpenStack project. By default, this file should be saved under:
```bash
$HOME/.openstack/app-cred--openrc.sh
```If your credentials file is stored elsewhere, the script will prompt you to provide its location during the **initial interactive setup**.
> [!NOTE]
> **Note:**
> The credentials file is not automatically created by the script. You must ensure it exists before running the script.## Run in Docker
To run in a docker container:
5. Build an image
```bash
docker build -t openstack-pals .6. Run in container
```bash
docker run -ti --rm -v ~/.pals:/root/.pals -v ~/.openstack:/root/.openstack openstack-pals7. Optionally, create an alias
```bash
alias openstack-pals="docker run -ti --rm -v ~/.pals:/root/.pals -v ~/.openstack:/root/.openstack openstack-pals"
```
and run with:
```bash
openstack-pals