Executando um comando shell no EC2 usando o boto? [fechadas]

1

Estou tentando encontrar uma maneira de passar um comando shell para uma instância do Linux EC2.

Basicamente, eu tenho um script que cria um volume do EBS, traz uma pilha do CloudFormation e, em seguida, anexa o novo volume a uma instância do EC2 dentro da pilha.

O que eu quero fazer é formatar e montar esse volume como parte desse script, mas parece que eu acertei um bloqueio de estrada naquele ponto.

Meu python não é incrível, mas eu consegui passar a maior parte disso, enquanto aprendi um monte ao mesmo tempo. Eu considerei o uso de Paramiko, no entanto, eu preciso de um túnel através de um par de servidores para chegar à sub-rede das instâncias.

# Attach an EBS volume to the EC2 Server instance
def attach_ebs(stack_id, results_volume):
    resources = cfn.list_stack_resources(stack_id)
    for r in resources:
        if r.resource_type == "AWS::EC2::Instance" and "Server" in r.logical_resource_id:
            ec2.attach_volume(results_volume, r.physical_resource_id, "/dev/sdh")
    
por Dan 14.08.2013 / 09:47

1 resposta

1

Você pode usar o módulo subprocesso do python para executar um comando por meio do ssh no instância de destino.

Para evitar a confusão jumphost, considere a execução de seu script python de uma instância do EC2 com a função IAM correta. Ou use ssh-chain .

    
por 14.08.2013 / 10:01