List view of AWS EC2 instances.
Example as follows.
$ lsec2 -HINSTANCE_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
$ brew install goldeneggg/tap/lsec2Note:
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.
# uninstall old tap version
$ brew uninstall lsec2
$ brew untap goldeneggg/lsec2
# and install new tap version
$ brew install goldeneggg/tap/lsec2$ go get -u github.com/goldeneggg/lsec2Download from latest release
If you have already installed 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".
- Default is
- Write
aws_access_key_idin your section - Write
aws_secret_access_keyin your section
[default]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEYMore information: session - Amazon Web Services - Go SDK
2 variables are required
$ export AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY_ID
$ export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEYUse --profile option
[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$ lsec2 # use "default" profile
$ lsec2 --profile test # use "test" profileSee #21
# print all instances info by list view
$ lsec2Result 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
You can use 3 patterns
- assign by
--regionoption (top priority)
$ lsec2 --region ap-northeast-1- write
regionkey in~/.aws/configfile
$ vi ~/.aws/config[default]
region = ap-northeast-1- set
AWS_REGIONenvironment
$ export AWS_REGION=ap-northeast-1Show more information from public AWS documents
# 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# 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 ,peco is a very useful interactive filtering tool.
- Example: print instances => select instance => SSH to selected instance
# 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=tagvalue1gat is a file posting tool to various services like cat command.
- Example: print instances => share your slack
# shortcut "lsec2 OPTIONS TAG_FILTERS" => copy this results to your slack channel
$ lsec2 TagName1=tagvalue1 | gat slackPlease follow Contributor's Guide
Bugs: issues
CHANGELOG file for details.
LICENSE file for details.