-
Notifications
You must be signed in to change notification settings - Fork 2
Roadmap
Cosmin Harangus edited this page Jan 9, 2016
·
2 revisions
- Shellbot should allow the provisioning of server through one or more communication protocols from any system.
- It should not require any agent running on the nodes in order to get them to the right state for the ssh communication protocol.
- It should require no dependencies when installing the tool on either the nodes or on the host.
- For any other protocol only the tool should be downloaded and started on the node.
- It should allow the user to arrange his configuration files any way that he wants. There should be a single main configuration file with imports external sections.
- It should allow any parts of the configuration to be downloaded from an online location, like a git repository.
- It should provide an easy to use library API in Go to be able to use it in any Go application.
- It should allow the configuration of multiple environments.
- It should allow checking if the nodes are reachable and that they are in the right state.
- It should allow extending the functionality with plugins for any extended features required.
- The tool should allow the display of a status check for each server
- The status should show if the servers are online and reachable
- The status should show if the servers are in the correct state (check if all commands have run successfully of if a service is running)
- The tool should allow all output from the servers to be logged for later review
- Add tests for all features and components
- Testing required - The tool should allow the user to connect to a remove server using ssh by using the ssh agent
- Load the configuration file by the tool and execute the commands on each server in the configuration (HCL, YAML, JSON, TOML supported due to Viper integration)
- Create a cli application that can serve as a basis for the shellbot tool
- Create an example of a configuration file with at least two ssh servers to connect to and multiple commands
- The tool should allow the user to copy a file from the server to the local environment
- The tool should allow the user to connect to a remove server using ssh by using a username and password
- The tool should allow the user to connect to a remove server using ssh by using a private key
- The tool should allow the remove execution of one or more commands on a server
- The tool should allow the user to copy a file from the local environment to the server
- The tool should allow the user to copy an entire directory from the local environment to the server
- The tool should allow the user to copy an entire directory from the server to the local environment