2014-04-02 2 views
1

저는 aws 콘솔에서 잠시 동안 작업 해 왔으며 powershell과 winrm을 사용하여 Windows ec2 인스턴스와 bootsrap을 시작하려고합니다. 어느 누구도 this.i에서 루비를 만들 수 있습니까? 인스턴스를 시작할 수 있지만 부트 스랩 할 수없는 스크립트.아마존 aws windows 인스턴스가 스크립트를 사용하여 시작합니다

+0

나는 당신이 구체적으로 질문을 정교한 사이트 – Rohan

+1

를 참고로하는 것에 루비 스크립트를 사용하여 인스턴스를 실행할 수 있습니다 : 당신은 당신이 이런 식으로 뭔가를 사용하여 암호를 요청할 수 있습니다 루비의 AWS-SDK 보석을 사용하는 가정하면? 원하는 것을 원하십니까? 루비 스크립트를 사용하여 인스턴스를 생성 한 후 새로 생성 된 인스턴스에서 스크립트를 호출 ??? –

답변

0

당신이 묻고있는 것과 비슷한 결과를 얻었으니 매우 간단하다고 말할 수 있습니다. AWS 제공 Windows AMI를 사용하는 경우 인스턴스 작성시 winrm 구성을 수행하기 위해 userdata 스크립트를 개발해야합니다. 루비 스크립트를 사용하여 AWS에서 Windows 인스턴스를 생성하고 userdata 스크립트를 생성의 일부로 전달할 수 있지만 userdata 스크립트 자체는 Windows OS 내에서 실행될 일괄 처리 및/또는 powershell이어야합니다.

script을 참조 할 수 있습니다. 스크립트는 실제로 Anisble 설정에서 나온 것이지만 새로운 자체 서명 인증서를 만들고 WinFS 구성에서 기본 보안 포트 5986의 연결에 https를 사용하는 경우 묻습니다. 이 인스턴스의 보안 그룹을 열어 TCP 5986 인바운드를 허용해야합니다.

새 AWS 인스턴스가 시작되고 userdata 스크립트가 실행되면 "https : // : 3986/winrm"을 사용하여 WinRM 및 원격 powershell 세션에 연결하고 로컬 Windows "Administartor"사용자를 사용하여 인증 할 수 있습니다. 암호는 인스턴스 생성을 요청할 때 제공 한 인증서를 기반으로 인스턴스별로 무작위로 생성됩니다. EC2 콘솔로 이동하여 개인 키를 제공하여 암호를 얻을 수 있습니다.

# pemPath is the file path of your PEM file 
# instance is an AWS::EC2::Instance 
ec2 = AWS::EC2.new 
encrypted_password = ec2.client.get_password_data(:instance_id => instance.instance_id).password_data 
private_key = OpenSSL::PKey::RSA.new(File.read(pemPath)) 
decoded = Base64.decode64(encrypted_password) 
password = private_key.private_decrypt(decoded) 
관련 문제