Como posso matar todas as instâncias meu EC2 da linha de comando?
-
10-07-2019 - |
Pergunta
Como posso matar todos os meus casos a partir da linha de comando? Existe um comando para este ou script I must-lo?
Solução
Tanto quanto eu sei que não é um 'all' interruptor para o comando ec2-Finaliza-casos. Então você provavelmente terá que escrevê-lo. Não vai ser tão difícil. Você só precisa gerar uma vírgula lista de suas instâncias separadas.
Este é um script python que estou usando:
import sys
import time
from boto.ec2.connection import EC2Connection
def main():
conn = EC2Connection('', '')
instances = conn.get_all_instances()
print instances
for reserv in instances:
for inst in reserv.instances:
if inst.state == u'running':
print "Terminating instance %s" % inst
inst.stop()
if __name__ == "__main__":
main()
Ele usa boto biblioteca . Isso não é necessário para a tarefa específica (um shell script simples será suficiente), mas pode ser útil em muitas ocasiões.
Finalmente você está ciente da extensão Elasticfox para o Firefox? Esta é de longe a forma mais fácil de acesso EC2.
Outras dicas
Esta é uma questão de idade, mas pensei que iria partilhar uma solução para AWS CLI :
aws ec2 terminate-instances --instance-ids $(aws ec2 describe-instances --filters "Name=instance-state-name,Values=pending,running,stopped,stopping" --query "Reservations[].Instances[].[InstanceId]" --output text | tr '\n' ' ')
Informações relacionadas:
Se os hackers têm terminação exemplo acidental desativado, primeiro executar este comando:
aws ec2 describe-instances --filters "Name=instance-state-name,Values=pending,running,stopped,stopping" --query "Reservations[].Instances[].[InstanceId]" --output text | xargs --delimiter '\n' --max-args=1 aws ec2 modify-instance-attribute --no-disable-api-termination --instance-id
AWS Console e Elasticfox torná-lo muito fácil.
Uma solução de linha de comando pode ser conseguido em uma linha usando as ferramentas EC2 API:
for i in `ec2din | grep running | cut -f2`; do ec2kill $i; done
Para sermos mais completos. Aqui está outra maneira, estando mais em linha com o repertório de um programador, usando expressões regulares e os aws da CLI:
aws ec2 terminate-instances
--instance-ids
$(
aws ec2 describe-instances
| grep InstanceId
| awk {'print $2'}
| sed 's/[",]//g'
)