This project provides a shell script with a menu-driven interface to simplify common OpenStack operations—such as displaying project details, listing images, and managing flavors—through the OpenStack command-line client. It streamlines frequent administrative tasks while serving as a practical tool for learning OpenStack concepts and command-line scripting.
❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀
❀ The Open Stack Personal Automation and Launch Suite ❀
❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀
1. Show Info on Project
2. Show Info on User
3. Show Projects I'm A Member Of
4. Show All Instances
5. Show floating IPs
6. Show networks
7. Show Bare Metal
8. Show All Images
9. Show All Flavors
a. Show Shares
b. Show Quotas
c. Show Current OpenStack Services
x. Run Your Command
y. Open OpenStack Shell
q. Exit
------------------------------------
Enter your choice [1-9]:
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.
To clone this repository and set up the project locally, follow these steps:
- Clone the repository:
git clone https://github.com/groda/openstack-pals.git
- Navigate into the project directory:
cd openstack-pals - Show an usage message
./openstack-pals.sh -h
- Run
./openstack-pals.sh
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.
The script requires a credentials file for establishing a connection with your OpenStack project. By default, this file should be saved under:
$HOME/.openstack/app-cred-<YOUR_PROJECT>-openrc.shIf 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.
To run in a docker container:
-
Build an image
docker build -t openstack-pals . -
Run in container
docker run -ti --rm -v ~/.pals:/root/.pals -v ~/.openstack:/root/.openstack openstack-pals **Note:** this assumes that your credentials file is saved under ~/.openstack/app-cred-<YOUR_PROJECT>-openrc.sh (inside the container /root/.openstack/app-cred-<YOUR_PROJECT>-openrc.sh)
-
Optionally, create an alias
alias openstack-pals="docker run -ti --rm -v ~/.pals:/root/.pals -v ~/.openstack:/root/.openstack openstack-pals"
and run with:
openstack-pals