Skip to content

Commit

Permalink
Add environments block to documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
ezh committed Feb 21, 2020
1 parent 56dd980 commit c1aa4c8
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 6 deletions.
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@

You may find a documentation at the <a href="https://cloudselect.readthedocs.io/" target="_blank">Read The Docs</a>

## Environments

- [Amazon Web Services (AWS)](https://aws.amazon.com/)
- [Hetzner cloud](https://www.hetzner.com/cloud)
- Discovery results from local command

## Purpose

We should jump between nodes quickly, having a pack of cloud accounts. Each account could be in a different region. Some nodes are publicity available, some of them not. Dozen of nodes sit behind bastion hosts. And a few of them sit behind a group of jump points. And they all have different SSH keys.
Expand All @@ -21,7 +27,7 @@ Cloud Select is useful for diving inside geo-distributed onion enterprise enviro

## Implementation

CloudSelect retrieves node list from the cloud, passes that list to FZF, adds some useful information to selected nodes (like jump hosts, `sudo -i` command, etc...), and returns JSON dictionary that could be used by other programs. CloudSelect is a team player in a shell environment. We can automatically open interactive SSH sessions in parallel and provide passwords to `sudo -i` under TMUX environment.
CloudSelect retrieves node list from the cloud, passes that list to FZF, adds some useful information to selected nodes (like jump hosts, `sudo -i` command, etc...), and returns dictionary that could be used by other programs. CloudSelect is a team player in a shell environment. We can automatically open interactive SSH sessions in parallel and provide passwords to `sudo -i` under TMUX environment.

## Demo

Expand Down
16 changes: 11 additions & 5 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
## Environments

- [Amazon Web Services (AWS)](https://aws.amazon.com/)
- [Hetzner cloud](https://www.hetzner.com/cloud)
- Discovery results from local command

## Purpose

We should jump between nodes quickly, having a pack of cloud accounts. Each account could be in a different region. Some nodes are publicity available, some of them not. Dozen of nodes sit behind bastion hosts. And a few of them sit behind a group of jump points. And they all have different SSH keys.

There is a `~/.ssh/config`, but it is not enough because of the dynamic nature of the cloud. It is too clumsy. It is not suitable for cases when IP addresses are changing instantly, and instances are creating and destroying in minutes.
There is a `~/.ssh/config`, but it is not enough because of the dynamic nature of the cloud. It is too clumsy and not suitable for cases when IP addresses are changing instantly, and instances are creating and destroying in minutes.

I tried to structure that hell with shell scripts, but the shell is not enough. I believe that tools like _C_/_C++_/_Java_/_Node.JS_/_Go_?/_Rust_ are too heavy for this case. Python is the exact thing. I like to have a dynamic and lightweight solution. Cloud Select is fast enough to go through thousands of nodes. Maybe if my scope will be higher, then I'll create something other.
I tried to structure that chaos with shell scripts, but the shell is not enough. I believe that tools like _C_/_C++_/_Java_/_Node.JS_/_Go_?/_Rust_ are too heavy for this case. Python is the exact thing. I like to have a dynamic and lightweight solution. Cloud Select is fast enough to go through thousands of nodes. Maybe if my scope will be higher, then I'll create something other.

It is useful for diving inside geo-distributed onion enterprise environments with weird security settings.
Cloud Select is useful for diving inside geo-distributed onion enterprise environments with weird security settings.

## Implementation

CloudSelect retrieves node list from the cloud, passes that list to FZF, adds some useful information to selected nodes (like jump hosts, `sudo -i` command, etc...), and returns JSON dictionary that could be used by other programs. CloudSelect is a team player in a shell environment. We can automatically open multiple interactive SSH sessions and provide passwords to `sudo -i` under TMUX environment.
CloudSelect retrieves node list from the cloud, passes that list to FZF, adds some useful information to selected nodes (like jump hosts, `sudo -i` command, etc...), and returns dictionary that could be used by other programs. CloudSelect is a team player in a shell environment. We can automatically open interactive SSH sessions in parallel and provide passwords to `sudo -i` under TMUX environment.

## Demo

Expand All @@ -24,7 +30,7 @@ The tool is:
4. running `sudo -i` at startup
5. entering `sudo` password 12345678

  _And after that, we have four ready to use interactive sessions in our terminal..._
_And after that, we have four ready to use interactive sessions in our terminal..._

You may find a demo files in <a href="https://github.com/ezh/cloudselect/tree/master/docs/demo" target="_blank">docs/demo</a> directory.

Expand Down

0 comments on commit c1aa4c8

Please sign in to comment.