2016-06-27 5 views
-1

많은 진전을 이뤘습니다.AWS Python - Windows - 인스턴스를 생성 한 후 스크립트 실행

내 수입은 다음과 같습니다

import boto.rds as rds 
import boto3 as b3 
import boto.ec2 as ec2 
from boto.manage.cmdshell import sshclient_from_instance 

내가 사용하여 내 AWS에 연결할 수 있습니다 내가하려고 할 때,

conn_args = { 
    'aws_access_key_id': 'MY_KEY', 
    'aws_secret_access_key': 'MY_PASS', 
    'region_name': 'us-west-2' 
} 

ec2_res = b3.resource('ec2', **conn_args) 

new_instance = ec2_res.create_instances(
    ImageId='ami-123456', 
    MinCount=1, 
    MaxCount=1, 
    InstanceType='t2.micro', 
    KeyName='my-keyname', 
SecurityGroups=[ 
     'my-securitygroup' 
    ] 
    ) 

을 지금 :

conn = boto.ec2.connect_to_region('us-west2',aws_access_key_id='MY_ID', aws_secret_access_key='MY_PASS') 

내가 사용하여 인스턴스를 만들 수 있습니다 내 새 인스턴스에 명령을 실행합니다. 벽에 머리를 두드리는 중입니다.

내가 좋아하는 뭔가를 시도하고있다 :

ssh_client = sshclient_from_instance(instance, 
            'C:\\users\\%USER%\\aws\\windows-west-keypair.pem', 
            user_name='Administrator') 

status, stdout, stderr = ssh_client.run('cd') 

을하지만 난 다시 얻을 :

C:\Users\%USER%\Miniconda\lib\site-packages\paramiko\hostkeys.pyc in load(self, filename) 
    93   :raises IOError: if there was an error reading the file 
    94   """ 
---> 95   with open(filename, 'r') as f: 
    96    for lineno, line in enumerate(f, 1): 
    97     line = line.strip() 

IOError: [Errno 2] No such file or directory: 'C:\\Users\\%USER%/.ssh/known_hosts' 

예를 나에게 새로운 일이 내 AWS에 ssh를 통해 연결, 그래서 나는 거기 기대하지 않습니다 디렉토리/파일이되어야합니다.

무엇이 필요합니까? 사전에 설치해야 할 것이 있습니까? 정확히 무엇이 잘못 될까요?

너무 가까이서 느껴진다.

도움이 될 것입니다.

+0

Windows 인스턴스입니까? – error2007s

+0

@ error2007s 예, Windows 인스턴스입니다. –

+0

pem 파일을 사용하여 Windows 인스턴스로 Ssh 할 수 없습니다. AWS Windows EC2 인스턴스에 연결하려면이 단계를 확인하십시오. http://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-rdp.html – error2007s

답변

0

주석에서 언급했듯이 창으로 직접 ssh 할 수는 없습니다.

그래서 다시 초기 요구 사항에 와서 : 나는 인스턴스를 만든 후 스크립트를 실행 내가 대신 파이썬 스크립트에서 만하면 EC2 인스턴스에서 스크립트가하고 자동으로 EC2 인스턴스 시작

에서 실행이 그렇게하지 않을

user data script이 인스턴스에서 실행될 수 있습니다. Windows 인스턴스에서 기본 cmd 스크립트 또는 powershell 스크립트를 실행할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 이 유스 케이스에 직면 한 사람은 윈도우가 아닌 리눅스 인스턴스를 사용해야합니다. –

+0

더욱 좋습니다! –

+0

Frederic, 리눅스 인스턴스에서 phantomjs를 사용합니까? –