ecsher

command module
v0.14.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 1, 2023 License: Apache-2.0 Imports: 1 Imported by: 0

README

Actions Status Actions Status Actions Status

ECSHER

What is Ecsher?

ecsher is CLI tool describing ECS resources like kubectl.

$ ecsher get svc
Cluster: MyCluster
NAME             STATUS  LAUNCH_TYPE     SCHEDULING_STRATEGY     DESIRED RUNNING PENDING
MyService        ACTIVE                  REPLICA                 1       1       0

$ ecsher get task 
Cluster: MyCluster
NAME                                    LAUNCH_TYPE     GROUP                   CONNECTIVITY    DESIRED_STATUS LAST_STATUS      HEALTH_STATUS
32b43c46cc25464c9cc90848b9a5142d        FARGATE         service:MyService       CONNECTED       RUNNING        RUNNING          UNKNOWN 
b9cb128c24554df78ed5a019aed6fabf        FARGATE         family:nginx-fargate    CONNECTED       RUNNING        RUNNING          UNKNOWN

Usage

Prerequisities

ecsher use your AWS credentials. Please set up AWS credentials.

Installation
  1. You can install via Homebrew.
$ brew tap Mic-U/ecsher    
$ brew install ecsher
  1. You can download binary from release page.
  1. You can build binary.
    Then, move binary to the directory in PATH(for example /usr/local/bin )
$ go build -o ecsher ./
$ sudo mv ./ecsher /usr/local/bin/ecsher
$ ecsher get cluster
NAME            STATUS  ACTIVE_SERVICES RUNNING_TASKS   PENDING_TASKS   CONTAINER_INSTANCES
MyCluster       ACTIVE  1               1               0               0
Cluster

Show List of clusters.

$ ecsher get cluster
NAME          STATUS  ACTIVE_SERVICES RUNNING_TASKS   PENDING_TASKS   CONTAINER_INSTANCES
MyCluster     ACTIVE  1               1               0               0

Show detailed info of the cluster in YAML format.

$ ecsher describe cluster --name MyCluster
activeservicescount: 1
attachments: []
attachmentsstatus: null
capacityproviders:
- FARGATE_SPOT
- FARGATE
...

You can save cluster name by set command.

go run main.go set cluster --name MyCluster
Cluster: MyCluster
$ cat ~/.ecsher.toml
cluster = "MyCluster"
Service

Note: If you saved cluster in config file, you don't need specify --cluster flag.
Show List of services in the specified cluster.

$ ecsher get service --cluster MyCluster
Cluster: MyCluster
NAME             STATUS  LAUNCH_TYPE     SCHEDULING_STRATEGY     DESIRED RUNNING PENDING
MyCluster        ACTIVE                  REPLICA                 1       1       0

Show detailed info of the service in YAML format.

$ go run main.go describe service --name MyService --cluster MyCluster
capacityproviderstrategy:
- capacityprovider: FARGATE_SPOT
  base: 0
  weight: 1
...

svc is the alias of service.

$ ecsher get svc
Cluster: MyCluster
NAME             STATUS  LAUNCH_TYPE     SCHEDULING_STRATEGY     DESIRED RUNNING PENDING
MyCluster        ACTIVE                  REPLICA                 1       1       0
Tasks

Note: If you saved cluster in config file, you don't need specify --cluster flag. Show List of tasks in the specified cluster.

$ ecsher get task --cluster MyCluster
Cluster: MyCluster
NAME                                    LAUNCH_TYPE     GROUP                    CONNECTIVITY    DESIRED_STATUS LAST_STATUS      HEALTH_STATUS
32b43c46cc25464c9cc90848b9a5142d        FARGATE         service:MyService        CONNECTED       RUNNING        RUNNING  UNKNOWN 

Show detailed info of the task in YAML format.

$ go run main.go describe task --name 32b43c46cc25464c9cc90848b9a5142d
attachments:
- details:
  - name: subnetId
...
TaskDefinition

Note: By default, ecsher shows ACTIVE task definitions.
Show List of task definition families.

$ ecsher get definition
FAMILY
hello
nginx-fargate

If you specify --family flag, ecsher shows list of revisions in the specified family.

$ ecsher get definition --family nginx-fargate
FAMILY          REVISION
nginx-fargate   1

Show detailed info of the task definition in YAML format.

$ ecsher describe definition --family nginx-fargate --revision 1
compatibilities:
- EC2
- FARGATE
containerdefinitions:
...
Container Instance

Note: If you saved cluster in config file, you don't need specify --cluster flag.

Show list of container instances in the specified cluster.

$ ecsher get instance --cluster MyCluster
NAME                              EC2_INSTANCE_ID      STATUS  DOCKER_VERSION              AGENT_VERSION  CONNECTED  REMAINING_CPU  REMAINING_MEMORY  RUNNING  PENDING
243e5612f9fe43f5af887620f9cdedfa  i-0a91a75f0affe41d4  ACTIVE  DockerVersion: 19.03.13-ce  1.50.2         true       2048           1955              0        0
40dccfd0c25947a8b34f56d00cbee1a5  i-06c277d7fa62a5b68  ACTIVE  DockerVersion: 19.03.13-ce  1.50.2         true       2048           1955              0        0

Show detailed info of the container instance in YAML format.

ecsher describe instance --name 243e5612f9fe43f5af887620f9cdedfa -c MyCluster
agentconnected: true
agentupdatestatus: ""
attachments: []
attributes:
...
Logs

Note: If you saved cluster in config file, you don't need specify --cluster flag. ecsher fetch latest 100 logs.

Show service logs. If you set --watch option, ecsher continues to fetch logs until you interrupt.

$ ecsher logs service --name MyService --watch
TIMESTAMP                          ID                                    MESSAGE
2021-02-26 18:55:32.12 +0000 UTC   b35aff85-dd30-43dd-8510-d053544cfad0  (service MyService) has reached a steady state.
2021-02-27 00:55:53.502 +0000 UTC  1ef46502-d220-43d6-9a2f-d837650ea823  (service MyService) has reached a steady state.

Show task logs. If you set --watch option, ecsher continues to fetch logs until you interrupt. ecsher supports only awslogs logdriver. If the task has multiple containers, you must set --container option.

$ ecsher logs task --name 8baae5aa33db434d9888171527434fb5 --container devops
TIMESTAMP                      MESSAGE
2021-03-19 11:30:33 +0000 UTC  Current latestPublished: 2021-03-19 11:30:31.551286116 +0000 UTC
2021-03-19 11:30:33 +0000 UTC  No new articles
Exec

Prerequisites: You need install Session Manager Plugin
Note: If you saved cluster in config file, you don't need specify --cluster flag.

ecsher wraps ECS ExecutionCommands.

$ ecsher exec 5018d08c0be448ae9040beb6cc5879f4 /bin/bash --container tomcat -i
Cluster: execcluster-MyCluster-PuhDPGqX8Ej3

Starting session with SessionId: ecs-execute-command-0b4d4ec39fd79a21d
bash-4.2# 

Completion

ecsher supports autocompletion.
Please run ecsher help completion command for detail.

Documentation

Overview

Copyright © 2021 NAME HERE <EMAIL ADDRESS>

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL