저는 EB CLI 사용자가 아닙니다. 그러나 당신은 awscli
을 사용하여 1 명령으로 원하는 것을 얻을 수 있습니다.
먼저 설치하고 awscli
을 구성
$ pip install awscli
$ aws configure
ElasticBeanstalk 자동 elasticbeanstalk:environment-name
태그 ElasticBeanstalk 환경의 일부 EC2 인스턴스 태그. 이 정보를 사용하면 특정 elasticbeanstalk:environment-name
태그 값을 가진 실행중인 모든 인스턴스를 필터링 할 수 있습니다. 위의 명령
$ aws ec2 describe-instances --filters "Name=tag:elasticbeanstalk:environment-name,Values=your-environment-name"
당신에게 꽤 오랜 JSON 출력을 제공 할 것입니다. "PublicIpAddress"
을 찾을 수 있지만 jq
같은 도구를 사용하여이 정보를 필터링 할 수 있습니다.
$ aws ec2 describe-instances --filters "Name=tag:elasticbeanstalk:environment-name,Values=your-environment-name" | jq '.Reservations | .[] | .Instances | .[] | .PublicIpAddress'
그것을 시도 : 그래서 마지막 명령은 같을 것입니다.
가 여기에 사용 awscli
명령에 대한 다양한 옵션에 대한 자세한 내용은 다음과 같습니다 2017년 3월 12일
jq
가 불필요 aws ec2 describe-instances docs
UPDATE, 리눅스 명령 줄 도구도 필요하지 않습니다. awscli
JMESPath (JSON query language)을 사용하여 관심있는 특정 값을 쿼리하는 데 사용할 수있는 --query
옵션을 지원합니다. 이 경우 당신은 할 것 :
$ aws ec2 describe-instances --filters "Name=tag:elasticbeanstalk:environment-name,Values=your-environment-name" --query 'Reservations[].Instances[].PublicIpAddress' --output text
위는 한 줄에 하나씩 일반 IP 주소를 인쇄합니다. (| 그렙 INSERVICE | EB 상태 -v 잘라 -d ":"-f1 | AWK는 '{$ 1 인쇄}')
EC2-설명-경우 $ :
우분투는'jq' 유틸리티를 설치하라고합니다.그러나, 나는 이것을 요구하지 않는 나의 딜레마에 대한 해답을 게시했다. 내가'ec2-describe-instances'를 사용했을지라도'describe-instances'가 갈 방법 이었기 때문에 당신에게 upvote를주었습니다 ... – arod
'jq를 사용하는 것 대신 grep/awk/perl로 할 수 있습니다. '뿐만 아니라 표준 툴킷에 비해 JSON을 사용하는 것이 매우 편리한 도구입니다. –
@arod 외부 도구없이 정말 깨끗한 구문에 대한 업데이트 된 답변을 확인하십시오. –