{"id":21977782,"url":"https://github.com/groda/openstack-pals","last_synced_at":"2026-04-17T02:31:16.222Z","repository":{"id":264536070,"uuid":"893601623","full_name":"groda/openstack-pals","owner":"groda","description":"The Open Stack Personal Automation and Launch Suite ","archived":false,"fork":false,"pushed_at":"2025-11-10T17:23:54.000Z","size":52,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-10T19:12:02.410Z","etag":null,"topics":["cli","command-line-tool","multicloud","openstack","openstack-clients","private-cloud"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/groda.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-24T21:13:14.000Z","updated_at":"2025-11-10T17:23:58.000Z","dependencies_parsed_at":"2024-12-30T23:19:56.543Z","dependency_job_id":"6658445d-bb49-4047-9b63-317d4e212cef","html_url":"https://github.com/groda/openstack-pals","commit_stats":null,"previous_names":["groda/openstack-pals"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/groda/openstack-pals","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groda%2Fopenstack-pals","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groda%2Fopenstack-pals/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groda%2Fopenstack-pals/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groda%2Fopenstack-pals/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/groda","download_url":"https://codeload.github.com/groda/openstack-pals/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/groda%2Fopenstack-pals/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31912319,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","command-line-tool","multicloud","openstack","openstack-clients","private-cloud"],"created_at":"2024-11-29T16:16:24.552Z","updated_at":"2026-04-17T02:31:16.197Z","avatar_url":"https://github.com/groda.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenStack Personal Automation and Launch Suite\n\n## Description\n\nThis 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.\n\n```\n❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀\n❀ The Open Stack Personal Automation and Launch Suite ❀\n❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀~❀\n1. Show Info on Project\n2. Show Info on User\n3. Show Projects I'm A Member Of\n4. Show All Instances\n5. Show floating IPs\n6. Show networks\n7. Show Bare Metal\n8. Show All Images\n9. Show All Flavors\na. Show Shares\nb. Show Quotas\nc. Show Current OpenStack Services\nx. Run Your Command\ny. Open OpenStack Shell\nq. Exit\n------------------------------------\nEnter your choice [1-9]: \n```\n\nThe 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.\n\n\u003e [!NOTE]\n\u003e Important Notice:\n\u003e 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.\n\u003e \n\u003e 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.\n\u003e\n\u003e 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.\n\n## Installation\n\nTo clone this repository and set up the project locally, follow these steps:\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/groda/openstack-pals.git\n\n2. Navigate into the project directory:\n   ```bash\n   cd openstack-pals\n\n3. Show an usage message\n   ```bash\n   ./openstack-pals.sh -h\n\n4. Run\n   ```bash\n   ./openstack-pals.sh\n\n\n## Configuration Files\n\nThe 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**.\n\n- `$HOME/.pals` – The main configuration file containing your connection parameters.  \n- `$HOME/.pals.bak` – A backup file that stores the history of previous configurations.\n\nThese files **do not contain any passwords**. They are automatically updated by the script during execution.\n\n\n## Credentials File  \n\nThe script requires a **credentials file** for establishing a connection with your OpenStack project. By default, this file should be saved under:  \n```bash\n$HOME/.openstack/app-cred-\u003cYOUR_PROJECT\u003e-openrc.sh\n```\n\nIf your credentials file is stored elsewhere, the script will prompt you to provide its location during the **initial interactive setup**.  \n\n\u003e [!NOTE]\n\u003e **Note:**\n\u003e The credentials file is not automatically created by the script. You must ensure it exists before running the script.  \n\n\n## Run in Docker\n\nTo run in a docker container:\n\n5. Build an image\n   ```bash\n   docker build -t openstack-pals .\n\n6. Run in container\n   ```bash\n   docker run -ti --rm -v ~/.pals:/root/.pals -v ~/.openstack:/root/.openstack openstack-pals\n\n   **Note:** this assumes that your credentials file is saved under ~/.openstack/app-cred-\u003cYOUR_PROJECT\u003e-openrc.sh \n   (inside the container /root/.openstack/app-cred-\u003cYOUR_PROJECT\u003e-openrc.sh)\n\n7. Optionally, create an alias\n   ```bash\n   alias openstack-pals=\"docker run -ti --rm -v ~/.pals:/root/.pals -v ~/.openstack:/root/.openstack openstack-pals\"\n   ```\n   \n   and run with:\n   ```bash\n   openstack-pals\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgroda%2Fopenstack-pals","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgroda%2Fopenstack-pals","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgroda%2Fopenstack-pals/lists"}