Riverbed SteelScript is a collection of libraries and scripts written in Python for interacting with Riverbed solutions and appliances, and other network infrastructure devices.
If you have git and Docker installed. Open your shell (bash or PowerShell), build SteelScript from the latest source code and run it locally in a Docker container as follows:
.. code:: shell
docker build --tag steelscript:latest https://github.com/riverbed/steelscript.git
Run examples from the shell
.. code:: shell
# Run the image in an interactive container
docker run -it steelscript:latest /bin/bash
From here you can start to use the SteelScript framework. You can try some script examples.
1. Print the Host Groups of an AppResponse appliance:
.. code:: shell
python examples/appresponse-examples/print_hostgroups-formatted.py {appresponse fqdn or IP address} -u {admin account} -p {password}
2. Get the licenses and services of a Client Accelerator Controller appliance:
.. code:: shell
python examples/cacontroller-examples/cacontroller-rest_api.py {client accelerator controller fqdn or IP address} --access_code {access_code}
3. List the devices from NetIM Core:
.. code:: shell
python examples/netim-examples/print-netim-devices-raw.py {netim core fqdn or IP address} --username {account} --password {password}
Run examples with Jupyter Notebook
Build a steelscript container image that includes the Jupyter Notebook server.
.. code:: shell
docker build --tag steelscript:latest https://github.com/riverbed/steelscript.git
docker build --tag steelscript.notebook -f Dockerfile.notebook https://github.com/riverbed/steelscript.git
Run the container with Jupyter Notebook server, by default on port 8888
.. code:: shell
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 notebook examples based on SteelScript.
For a complete guide with installation details, see https://support.riverbed.com/apis/steelscript <https://support.riverbed.com/apis/steelscript>
_
The doc needs a good refresh
The recommendation is to use SteelScript in a Docker container or install directly from the python code publicly available in Github.
In the SteelScripts docs <https://support.riverbed.com/apis/steelscript>
__ there are more details about other installation methods but Docker is the easiest.
The goal is to be able to release each new version (corresponding to a tag in the master branch) at least in a Docker public repository: SteelScript on Docker Hub <https://hub.docker.com/r/riverbed/steelscript>
__
For contribution for alternative distribution methods and packaging (like pypi, rpm, .deb, rpm, tgz,...), artifacts will be organized inside /packaging and /test subfolders. We might need to dedicate another repo.
Feel free to use, enhance and contribute by creating issues, sending pull requests (PR), extending with new modules ...
The common module for SteelScript is in the SteelScript repo <https://github.com/riverbed/steelscript>
__
It contains common code but also it is the entrypoint for Documentation, Build, Test and releases.
Other SteelScript modules have their own repository which
can be found in the Riverbed GitHub org <https://github.com/riverbed>
__, the name is prefixed by "steelscript".
Modules for Riverbed products and appliances:
AppResponse <https://github.com/riverbed/steelscript-appresponse>
__NetIM <https://github.com/riverbed/steelscript-netim>
__NetProfiler <https://github.com/riverbed/steelscript-netprofiler>
__SteelHead <https://github.com/riverbed/steelscript-steelhead>
__SteelHead Controller (a.k.a SCC) <https://github.com/riverbed/steelscript-scc>
__Client Accelerator Controller (formerly called SteelHead Mobile controller, SMC or SCCM) <https://github.com/riverbed/steelscript-client-accelerator-controller>
__Extra modules
Wireshark <https://github.com/riverbed/steelscript-wireshark>
__NetShark <https://github.com/riverbed/steelscript-netshark>
__Packets <https://github.com/riverbed/steelscript-packets>
__Command line Access <https://github.com/riverbed/steelscript-cmdline>
__Other repos for components and SteelScript extensions:
Application Framework <https://github.com/riverbed/steelscript-appfwk>
__- Business hour reporting plugin for Application Framework <https://github.com/riverbed/steelscript-appfwk-business-hours>
__- Stock report demo with Application Framework <https://github.com/riverbed/steelscript-appfwk-business-hours>
__VM Config <https://github.com/riverbed/steelscript-vm-config>
__ SteelScript is based on Python 3. The repos of SteelScript modules have a common structure
.. code-block:: raw
steelscript-module-name # for example: steelscript-appresponse ├── README.rst ├── LICENSE ├── CHANGELOG ├── .gitignore ├── docs ├── examples ├── steelscript │ ├── init.py │ └── module-name # for example: appresponse │ ├── core │ │ └── init.py │ ├── commands │ │ └── init.py │ └── init.py ├── tests ├── setup.py ├── notebooks └── tox.ini
Mandatory:
Optional:
Tox <https://tox.readthedocs.io/en/latest/>
__Jupyter <https://jupyter.org/>
__Builds are defined in the SteelScript repo <https://github.com/riverbed/steelscript>
__
Prebuild test-plans validations
todo
Execute test-plans with tox
.. code:: shell
pip install tox tox
Building Docker containers
Some Dockerfile are provided to build different flavors of the SteelScript container image:
Standard:
.. code:: shell
docker build --tag steelscript -f Dockerfile .
Slim:
.. code:: shell
docker build --tag steelscript.slim -f Dockerfile.slim .
Notebook
.. code:: shell
docker build --tag steelscript.notebook -f Dockerfile.notebook .
Dev from master
.. code:: shell
git clone https://github.com/riverbed/steelscript --depth 1 --recurse-submodules git clone https://github.com/riverbed/steelscript-netprofiler --depth 1 --recurse-submodules git clone https://github.com/riverbed/steelscript-wireshark --depth 1 --recurse-submodules git clone https://github.com/riverbed/steelscript-cmdline --depth 1 --recurse-submodules git clone https://github.com/riverbed/steelscript-scc --depth 1 --recurse-submodules git clone https://github.com/riverbed/steelscript-appresponse --depth 1 --recurse-submodules git clone https://github.com/riverbed/steelscript-netim --depth 1 --recurse-submodules git clone https://github.com/riverbed/steelscript-client-accelerator-controller --depth 1 --recurse-submodules git clone https://github.com/riverbed/steelscript-steelhead --depth 1 --recurse-submodules git clone https://github.com/riverbed/steelscript-packets.git --depth 1 --recurse-submodules
docker build --tag steelscript.dev --progress=plain -f steelscript/Dockerfile.dev .
Dev from your_fork/your_branch
.. code:: shell
git clone https://github.com/your_fork/steelscript --depth 1 --recurse-submodules -b your_branch git clone https://github.com/your_fork/steelscript-netprofiler --depth 1 --recurse-submodules -b your_branch git clone https://github.com/your_fork/steelscript-wireshark --depth 1 --recurse-submodules -b your_branch git clone https://github.com/your_fork/steelscript-cmdline --depth 1 --recurse-submodules -b your_branch git clone https://github.com/your_fork/steelscript-scc --depth 1 --recurse-submodules -b your_branch git clone https://github.com/your_fork/steelscript-appresponse --depth 1 --recurse-submodules -b your_branch git clone https://github.com/your_fork/steelscript-netim --depth 1 --recurse-submodules -b your_branch git clone https://github.com/your_fork/steelscript-client-accelerator-controller --depth 1 --recurse-submodules -b your_branch git clone https://github.com/your_fork/steelscript-steelhead --depth 1 --recurse-submodules -b your_branch git clone https://github.com/your_fork/steelscript-packets.git --depth 1 --recurse-submodules -b your_branch
docker build --tag steelscript.dev --progress=plain -f steelscript/Dockerfile.dev .
Copyright (c) 2021-2024 Riverbed Technology, Inc.
SteelScript is licensed under the terms and conditions of the MIT License accompanying the software ("License"). SteelScript is distributed "AS IS" as set forth in the License. SteelScript also includes certain third party code. All such third party code is also distributed "AS IS" and is licensed by the respective copyright holders under the applicable terms and conditions (including, without limitation, warranty and liability disclaimers) identified in the license notices accompanying the software.