Manage your bastion sessions automatically without pain of creating them by clicking and copy pasting commands
No specific requirements here, whatever runs Python
- Oracle Cloud
- 3.7+
- Add key in your Oracle cloud profile
- Generate new key
- Copy configuration file generated in your profile to
~/.oci/config
- Replace path of your
*.pem
key on line with #TODO
On most MacOS machines there is pip3
instead of pip
use pip3 for install
Install and update using pip:
pip install abst
or
pip3 install abst
- Use
abst ctx fill {context}
to fill your credentials for usage, you can find all the credentials on cloud provider site, leave context empty if you want to fill default - Use
abst ctx generate {context}
to generate default config for context, leave context empty if you want to generate to default
abst create forward/managed {context}
for automatic Bastion session creation once deleted, will keep your, leave context empty if you want to use default connection alive till you kill this scriptabst do forward/managed {context}
alias forabst create
abst clean
for removal all the saved credentialsabst use {context}
for using different config that you had filled,default
is the default context increds.json
- Use
abst ctx locate {context}
to locate your configs, leave context empty if you want to locate default
abst ctx list
to list contextsabst ctx upgrade <context-name>
to upgrade context you can use--all
flag to upgrade all contextsabst ctx locate <context-name>
to get a full path of contextabst ctx share <context-name>
to copy context contents into clipboard and display it, you can use--raw
to just get jsonabst ctx paste <context-name>
to paste contents into context file provided from name
abst ssh
facilitates selecting an instance to connect to. The optionalport
argument can be specified partially; a connection is established if only one match is found. Use-n <context-name>
to filter a connection, where the name can be a partial match.abst
employs thein
operator for searching and proceeds with SSH if a single matching instance exists.
If you are more demanding and need to have connection to your SSH Tunnels ready at all times you can use parallel executed Bastions that currently work for full-auto forwarded setting
Change local port in the setting to port that is unique to other configs, and it will be running on
all the added ports
Until you kill the abst
command, it will automatically remove all generated Bastion sessions by
this program
abst parallel add {context}
will add context from yourcontext folder
to stack that will be executedabst parallel remove {context}
will remove context from yourcontext folder
to stack that will be executedabst parallel run {context}
will run all the stacked contextsabst parallel display
will display current stacked contextsabst parallel list
will list all sets with contexts
abst helm login
will log you in with credentials set in config.json, you set these credentials when running this command first time. Edit with flag --edit 1-n number is the index of credential in listabst helm push <chart-name>
will push to specified remote branch, if more credentials preset it will let you pick which one to use
abst pod ssh <part of name>
will ssh into pod with similar name, if multiple found it will display selectabst cp secret secret_namespace target_namespace source_namespace(optional)
this will copy secret to target namespace, without providing source namespace it will use current as a source
Did I made your life less painful ?
Support my coffee addiction ;)