A simple SSH configuration deployment tool for the command-line.
Optional arguments include -i inventory_filename
and -t template_filename
. The template
should be defined in a plain-text document and the inventory filename should be defined in a
YAML or CSV formatted document. YAML should be supplied according to the
following schema;
---
default_username: User@domain.com
default_password: Password1
hosts:
- hostname: server1.domain.com
username: User@domain.com
password: Password1
data:
Sample: hello server1!
- hostname: server2.domain.com
username: User@domain.com
password: Password1
data:
Sample: hello server2!
Note that data
, username
, and password
are optional Host fields.
The fields defined in data
will be available to the
template during rendering. Fields required by the template must be defined in data
. Field names
should be uppercase to be accessible from within the template.
It is not necessary to provide host specific credentials to the hosts
definitions when
default_username
or default_password
are supplied.
CSV documents should follow the following schema. Note that CSV does not support
default_username
or default_password
hostname,username,password,Sample
server1.domain.com,User@domain.com,Password1,"hello server1!"
server2.domain.com,User@domain.com,Password1,"hello server2!"
If your hosts have a valid public key installed, you can use a PEM encoded key for authentication.
The key file can be passed to goconfigure
with the -k key_filename
flag. Password
authentication will be tried if key based authentication fails.
The following is a roadmap of features to be added. Completing all the following will get us to release v1.0.0.
Basic user/pass authentication.Key based authentication.Implement YAML Inventories.Implement CSV Inventories.- Implement interactive operation.
- Index responses by command.
- Add support for recurring attempts.