Steelscript
SteelScript is a collection of libraries and scripts in Python for interacting with Riverbed solutions and appliances, and other network infrastructure devices
Install / Use
/learn @riverbed/SteelscriptREADME
Riverbed SteelScript
Riverbed SteelScript is a collection of libraries and scripts written in Python for interacting with Riverbed solutions and appliances, and other network infrastructure devices.
Quick Start
Here are 4 things you can do to start quick and easy with SteelScript (click to expand the section).
<details> <summary>Try examples just with git and Docker</summary>Quick start SteelScript examples in a container
If you have git and Docker installed, for example on a Linux machine in your lab.
Open your shell (bash or PowerShell), build a container image of SteelScript from the latest source code, and run it locally in a Docker container as follows:
Build and run SteelScript in a container
Build a docker image:
# Build a docker image from latest code
docker build --tag steelscript:latest https://github.com/riverbed/steelscript.git
Run SteelScript in a container:
# Run the image in an interactive container
docker run -it steelscript:latest /bin/bash
Try examples
You can try some script examples.
- AppResponse example, print the Host Groups:
python examples/steelscript-appresponse/print_hostgroups-formatted.py {appresponse fqdn or IP address} -u {admin account} -p {password}
- Client Accelerator Controller example, get the licenses and services:
python examples/steelscript-cacontroller/cacontroller-rest_api.py {client accelerator controller fqdn or IP address} --access_code {access_code}
- NetIM example, list the Devices:
python examples/steelscript-netim/print-netim-devices-raw.py {netim core fqdn or IP address} --username {account} --password {password}
- NetProfiler example, get the list of the Ports Top Talkers:
python examples/steelscript-netprofiler/top_ports.py {netprofiler fqdn or IP address} -u {admin account} -p {password}
</details>
<details>
<summary>Try SteelScript notebooks, just with git and Docker</summary>
Quick Start SteelScript notebooks in a container
If you have git and Docker installed. You can build a steelscript container image that includes the Jupyter server and allows to run notebooks.
Build both steelscript bash imags and notebook image:
# Build the steelscript base image
docker build --tag steelscript:latest https://github.com/riverbed/steelscript.git
# Build the steelscript image for Jupyter Notebook
docker build --tag steelscript.notebook -f Dockerfile.notebook https://github.com/riverbed/steelscript.git
Run a container with the steelscript.notebook image. It contains the Jupyter Notebook server and will be listening on port 8888 by default.
# Start the steelscript.notebook container with built-in Jupyter Notebook
docker run --init --rm -p 8888:8888 --name=steelscript.notebook steelscript.notebook
In the output, grab the url containing the token, for example http://127.0.0.1:8888/tree?token=123456 , and open it in your browser to log into the Jupyter web-console.
From there, in the Notebooks folder you can find some notebooks based on SteelScript:
- AppResponse: 01-appresponse-hostgroups.ipynb
- work in progress NetProfiler
Quick start SteelScript notebooks in your environment
If you have all the tools ready:
- Python and pip
- git
- Visual Studio Code
Download a notebook for SteelScript, open it in Visual Studio Code and your good to go:
- work in progress Steelscript in the Riverbed Community Toolkit
- AppResponse: Hostgroups
</details> <details> <summary>Just install SteelScript modules in your Python environment, with pip and git</summary>Jupyter Notebook files have .ipynb extension, more about Jupyter Notebook
Quick Start SteelScript in your environment
If you have all the tools installed in your environment: Python, pip, and git
Then, open your shell (bash or PowerShell) to install SteelScript and modules (directly from the latest source code):
# Install SteelScript and modules
pip install git+https://github.com/riverbed/steelscript
pip install git+https://github.com/riverbed/steelscript-appresponse
pip install git+https://github.com/riverbed/steelscript-netim
pip install git+https://github.com/riverbed/steelscript-netprofiler
pip install git+https://github.com/riverbed/steelscript-steelhead
pip install git+https://github.com/riverbed/steelscript-scc
# ... and others check the list on https://github.com/orgs/riverbed/repositories?q=steelscript
</details>Find all the steelscript modules: steelscript repositories
Get SteelScript
SteelScript and modules are distributed via Riverbed on GitHub. The main repository is SteelScript.
To use SteelScript, it is recommended to either build your own SteelScript container or install the SteelScript modules in your own Python environment directly from the source on GitHub main repository. Refer to the quickstarts in the section above - the guide needs update.
[!NOTE] Other distributions have not been maintained and contain outdated versions of SteelScript: outdated SteelScript on Dockerhub, outdated SteelScript in pypi, ...
Guide
[!NOTE] The SteelScript guide needs a good refresh. The source is there: outdated source in docs subfolder
About SteelScript
The Framework
The common module for SteelScript is in the SteelScript repository. It contains common code but also it is the entrypoint for Documentation, Build, Test and releases.
Other SteelScript modules have their own repository. The repository name is prefixed by "steelscript": List of SteelScript repositories
Modules for Riverbed products and appliances:
- AppResponse
- NetIM
- NetProfiler
- SteelHead
- SteelHead Controller, also called SCC
- Client Accelerator Controller (CAC), formerly called SteelHead Mobile controller, SMC or SCCM
Extra modules
Other repos for components and SteelScript extensions:
[!NOTE] The following have known issues and maintenance is pending
- pending mantenance Application Framework
- pending mantenance Business hour reporting plugin for Application Framework
- pending mantenance Stock report demo with Application Framework
- pending mantenance VM Config
Folder Structure for Modules
SteelScript is based on Python 3. The repos of SteelScript modules have a common structure
steelscript-module-name # for example: steelscript-appresponse
├── README.md or README.rst # Markdown is preferred (.md) and reStructuredText (.rst)
├── LICENSE
├── CHANGELOG
├── .gitignore
├── docs
├── steelscript
│ ├── __init__.py
│ └── module-name # for example: appresponse
│ ├── core
│ │ └── __init__.py
│ ├── commands
│ │ └── __init__.py
│ └── __init__.py
├── tests
├── setup.py
├── examples
├── notebooks
└── tox.ini
Mandatory:
- README.md (or README.rst): README in Markdown (.md) or reStructuredText (.rst) format. Markdown is preferred.
- LICENSE: Riverbed Technology copyright, terms and conditions based on MIT
- CHANGELOG: Simple text file tracking major changes
- /docs: Documentation using reStructured Text (rst) file format.
- /examples: Python scripts samples showing how to use the module (only .py files)
- /steelscript: The actual code, written in Python (Python 3).
- /tests: Test p
Related Skills
imsg
349.0kiMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.
oracle
349.0kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
tmux
349.0kRemote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
lobster
349.0kLobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (s
