KO
|
EN
gitlite — search
Search
#javascript
#python
#hacktoberfest
#react
#ai
#typescript
#llm
#go
#golang
#android
#machine-learning
#rust
#deep-learning
#linux
lsec2
★ 22
Open GitHub ↗
List view of AWS EC2 instances
Download README (.md)
Explore Similar Repositories
prompt-checkbox
:
This repository has been archived, use Enquirer instead.
JavaMailwithGmailApi
:
Java Mail with Gmail OAuth API Sample
pkg-config-generator
:
Generate package config files
WiFiManager-OTA
:
No description available.
PluginLoader
:
基于PluginFramwork的插件加载器,支持APK动态加载
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
lsec2
?
Download (.md)
# lsec2 [](https://github.com/goldeneggg/lsec2/actions) [](https://goreportcard.com/report/github.com/goldeneggg/lsec2) [](https://golangci.com/r/github.com/goldeneggg/lsec2) [](https://codecov.io/github/goldeneggg/lsec2?branch=master) [](https://github.com/goldeneggg/lsec2/blob/master/LICENSE) List view of AWS EC2 instances. Example as follows. ```sh $ lsec2 -H ``` ``` INSTANCE_ID PRIVATE_IP PUBLIC_IP TYPE STATE TAGS i-0xxxxxxxxxxxxxx1 172.111.111.111 54.111.111.111 t2.micro running TagA=ValueA,TagB=ValueB i-0xxxxxxxxxxxxxx2 172.222.222.222 54.222.222.222 t2.medium running TagAA=ValueAA i-0xxxxxxxxxxxxxx3 172.333.333.333 54.333.333.333 t1.large stopped ``` ## Install ### Using Homebrew for OS X ```sh $ brew install goldeneggg/tap/lsec2 ``` ___Note:___ If you have already installed an old version's lsec2 using `brew tap goldenegg/lsec2` command and `brew install lsec2` command, please uninstall old version. ```sh # uninstall old tap version $ brew uninstall lsec2 $ brew untap goldeneggg/lsec2 # and install new tap version $ brew install goldeneggg/tap/lsec2 ``` ### Or `go get` ```sh $ go get -u github.com/goldeneggg/lsec2 ``` ### Or direct download Download from [latest release](https://github.com/goldeneggg/lsec2/releases/latest) ## Configuration ### Create `~/.aws/credentials` file __If you have already installed [aws\-cli](https://github.com/aws/aws-cli), I recommend setting up by `aws configure` command.__ Write your credential information in `~/.aws/credentials` file. * Write a section * Default is `[default]`. It's known as "Profile". * Write `aws_access_key_id` in your section * Write `aws_secret_access_key` in your section ```ini [default] aws_access_key_id = YOUR_ACCESS_KEY_ID aws_secret_access_key = YOUR_SECRET_ACCESS_KEY ``` More information: [session \- Amazon Web Services \- Go SDK](http://docs.aws.amazon.com/sdk-for-go/api/aws/session/) ### Or Set environment variables 2 variables are required ```sh $ export AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY_ID $ export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY ``` ### Change runtime profile Use `--profile` option ```ini [default] aws_access_key_id = YOUR_ACCESS_KEY_ID aws_secret_access_key = YOUR_SECRET_ACCESS_KEY [test] aws_access_key_id = YOUR_ACCESS_KEY_ID2 aws_secret_access_key = YOUR_SECRET_ACCESS_KEY2 ``` ```sh $ lsec2 # use "default" profile $ lsec2 --profile test # use "test" profile ``` ### Use profile with AssumeRole See https://github.com/goldeneggg/lsec2/pull/21 ## Usage ```sh # print all instances info by list view $ lsec2 ``` Result contains informations of instances as follows * instance id * private ip address * public ip address * instance type * instance state * tags Show more detail information by typing `lsec2 -h` ### Assign region You can use 3 patterns * assign by `--region` option (top priority) ```sh $ lsec2 --region ap-northeast-1 ``` * write `region` key in `~/.aws/config` file ```sh $ vi ~/.aws/config ``` ```ini [default] region = ap-northeast-1 ``` * set `AWS_REGION` environment ```sh $ export AWS_REGION=ap-northeast-1 ``` Show more information from public AWS documents * [SDK Configuration — Developer Guide](https://docs.aws.amazon.com/sdk-for-go/v1/developerguide/configuring-sdk.html) * [Sessions — Developer Guide](http://docs.aws.amazon.com/sdk-for-go/v1/developerguide/sessions.html) ### Filter by tag ```sh # filterd by a tag key-value separated by "=" $ lsec2 TagName1=tagvalue1 # filterd by some tags $ lsec2 TagName1=tagvalue1 TagNameN=tagvalueN # filterd by a tag multiple values separated by comma $ lsec2 TagName1=tagvalue11,tagvalue12,tagvalue1N ``` ### Options ```sh # with header $ lsec2 -H # filter state $ lsec2 -s running $ lsec2 -s stopped $ lsec2 -s OTHER_STATE # print only private IP address $ lsec2 -p # print state with color # ("running" is green, "stopped" is red, and others are yellow) $ lsec2 -c # change column delimiter (default delimiter is TAB) $ lsec2 -d , ``` ## Tips ### With peco [peco](https://github.com/peco/peco) is a very useful interactive filtering tool. * Example: print instances => select instance => SSH to selected instance ```sh # add function to your .bashrc or .bash_profile or other shell dotfile $ vi YOUR_DOTFILE lssh () { IP=$(lsec2 $@ | peco | awk -F "\t" '{print $2}') if [ $? -eq 0 -a "${IP}" != "" ] then ssh ${IP} fi } # load dotfile $ source YOUR_DOTFILE # shortcut "lsec2 OPTIONS TAG_FILTERS" => "ssh PRIVATE_IP" $ lssh TagName1=tagvalue1 ``` ### With gat [gat](https://github.com/goldeneggg/gat) is a file posting tool to various services like `cat` command. * Example: print instances => share your slack ```sh # shortcut "lsec2 OPTIONS TAG_FILTERS" => copy this results to your slack channel $ lsec2 TagName1=tagvalue1 | gat slack ``` ## Contribute Please follow [Contributor's Guide](CONTRIBUTING.md) ## Contact Bugs: [issues](https://github.com/goldeneggg/lsec2/issues) ## ChangeLog [CHANGELOG](CHANGELOG.md) file for details. ## License [LICENSE](LICENSE) file for details. ## Special Thanks [@sugitak](https://github.com/sugitak)