Development¶
This section is meant for people who are willing to contribute to ralph-cli
or
just want to experiment with it (or just build ralph-cli
from source). Here
you'll also find our plans for the future.
How to build ralph-cli?¶
ralph-cli
is written in Go and uses Glide for managing its
dependencies, so assuming that you already have Glide installed on your system
(see instructions for this here), and that you have cloned
ralph-cli
's repo to your $GOPATH
, all you have to do is to issue glide
install
command and then go build
(or go install
, if you prefer to make
your Go binaries that way).
If you are a die-hard Go programmer that uses only stdlib for everything, you can
proceed in a usual way, i.e. by issuing go get github.com/allegro/ralph-cli
,
but in such case, you need to handle ralph-cli
's dependencies by
yourself. This shouldn't be difficult, though.
Either way, after building your binary, you can verify it by issuing
ralph-cli --help
- it should give you a simple usage screen.
Bundled scripts¶
ralph-cli
comes with two default scripts for the scan
command - idrac.py
and ilo.py
. They are written in Python, and embedded into ralph-cli
's binary
by go-bindata
tool. If you'd find yourself in need of making any permanent
change to them, please refer to bundled_scripts/README.md
file for details on
how to add them to resulting ralph-cli
binary.
Ideas for Future Development¶
Here are some of the ideas that we are working on, or that may be implemented in
ralph-cli
. It should give you an approximate picture in which direction
ralph-cli
's development is heading.
Sooner¶
- Ability to refresh/recreate virtualenvs used by scan scripts written in Python (e.g. after adding new dependency to manifest file).
- Integration with Logstash (this is almost ready, though).
- Ability to feed
ralph-cli scan
with ready-made JSON files (i.e. without launching any scan scripts). - Ability to update all components detected by scan on a given host at once (i.e. with a single HTTP request over a single API endpoint).
- Ability to configure
ralph-cli
by environment variables, which would take precedence over the config file. - Ability to scan whole range of hosts/networks (at this moment,
ralph-cli
operates only on single hosts). - Support for Windows.
- Some minor improvements like setting timeouts for scan, adding progress bars etc.
Later¶
- Ability to add/checkout scan scripts to/from a Git repo without direct
interaction with Git itself, e.g.
ralph-cli script --commit
,ralph-cli script --checkout
- this should include commands likeralph-cli script --edit
and so on. - Ability to deploy hosts without touching Ralph's GUI, e.g.
ralph-cli deploy
.