2013-10-24 1 views
0

저는 간단한 cloudformation 스크립트를 사용하여 부트시 백그라운드 프로세스로 루비 스크립트를 실행하려고합니다.AWSCloudFormation - cfn-init가`ruby` 명령을 실행하지 못했습니다.

스크립트의 관련 섹션은

"AWS::CloudFormation::Init" : { 
        "config" : { 
         "sources" : { 
          "/etc/scripts" : "http://bootstrap-artifacts.s3.amazonaws.com/scripts.zip" 
         }, 
         "commands" : { 
          "1" : { 
          "command" : "cd /etc/scripts/agent" 
          }, 
          "2-start" : { 
          "command" : "nohup ruby agent.rb &" 
          } 
         } 
        } 
       } 

그냥 zip 파일을 다운로드 및 스크립트가 올바른 디렉토리에 존재하는지 확인하는 것입니다. 또한 내 AMI에는 루비 2.0.0이 설치되어 있습니다.

나는 var에 \ 로그 \의 CFN-init.log 파일 그 \ 에 도움을

감사를 nohup: failed to run command 'ruby': No such file or directory 을 받고 계속!

답변

0

AWS :: CloudFormation :: Init은 기본적으로 스택 생성 또는 업데이트 작업 중에 루트 사용자로 실행됩니다. 루비 2.0을 포함하고있는 bin 디렉토리 (보통 amazon에 의해 배송 된 AMI의 경우)는 PATH에 있지 않거나/usr/local/bin/ruby와 같은 루비의 전체 ​​위치를 사용할 수 있습니다.

+0

. 스크립트는 다른 문제가 있음을 나타내는 문제없이 실행됩니다. – dopplesoldner

1

문제는 명령을 단독으로 실행 한 결과입니다. 첫 번째 명령은 디렉토리를 변경하지만 두 번째 명령에는 영향을 미치지 않습니다. 해결책은 두 번째 명령에 'cwd'키를 사용하는 것입니다. 예를 들어

"AWS::CloudFormation::Init" : { 
        "config" : { 
         "sources" : { 
          "/etc/scripts" : "http://bootstrap-artifacts.s3.amazonaws.com/scripts.zip" 
         }, 
         "commands" : { 
          "2-start" : { 
          "command" : "nohup ruby agent.rb &", 
          "cwd" : "/etc/scripts/agent" 
          } 
         } 
        } 
       } 

추가 정보 : I 나중에 수동 인스턴스에 로그인 한 사용자가 루트로 전환 시도 http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-init.html#aws-resource-init-commands

+0

이것은 내 생명을 구했고 영원히 우물쭈물하고있었습니다. 고맙습니다. cfn-init에서 nohup에 관한 한 가지 : cfg-init.log에 "command success"메시지가 나타나지 않는 것 같습니다. "running/no test .."에서 멈 춥니 다. 명령이 실행되는 것 같습니다 (내 앱이 실행 중입니다 ...)하지만 cfg-init이 완료되고 영원히 정지하는지 궁금합니다. 너는 어떤 생각을 가지고 있니? – mBria

+0

cfn-init에서 nohup을 사용하여 문제를 파악한 적이 있습니까? 정지와 비슷한 문제가 발생하고 다음 명령이 실행되지 않습니다. – lukeforehand

관련 문제