2016-08-24 3 views
1

이것은 메타 데이터에 테스트 명령이있는 내 템플릿입니다. 명령이 실행되지 않는 이유를 알 수 없습니다./tmp에있는 파일에 문자열을 저장해야합니다. 기계는 cloud-init이 설치된 Ubuntu 16.04입니다. UserData에서 헬퍼 스크립트를 설치하고 cfn-init을 실행합니다.AWS :: CloudFormation :: Init이 메타 데이터에서 명령을 실행하지 않음

도움 주셔서 감사합니다.

{ 
    "AWSTemplateFormatVersion": "2010-09-09", 
    "Metadata": { 
    "AWS::CloudFormation::Designer": { 
     "2af5b799-f6bf-7f20-a6eb-943274f18373": { 
     "size": { 
      "width": 60, 
      "height": 60 
     }, 
     "position": { 
      "x": 326, 
      "y": 118 
     }, 
     "z": 0, 
     "embeds": [] 
     } 
    } 
    }, 
    "Resources": { 
    "EC2I3WADD": { 
     "Type": "AWS::EC2::Instance", 
     "Properties": { 
     "ImageId": "ami-c60b90d1", 
     "KeyName": "CF-KEY", 
     "InstanceType": "t2.micro", 
     "UserData": { 
      "Fn::Base64": { 
      "Fn::Join": [ 
       "", 
       [ 
       "#!/bin/bash -xe\n", 
       "apt-get -y install python-setuptools\n", 
       "mkdir aws-cfn-bootstrap-latest\n", 
       "curl https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz | tar xz -C aws-cfn-bootstrap-latest --strip-components 1\n", 
       "easy_install aws-cfn-bootstrap-latest\n", 
       "/usr/local/bin/cfn-init --stack ", 
       { 
        "Ref": "AWS::StackName" 
       }, 
       " --resource WebServer", 
       " --region ", 
       { 
        "Ref": "AWS::Region" 
       }, 
       "\n" 
       ] 
      ] 
      } 
     } 
     }, 
     "Metadata": { 
     "AWS::CloudFormation::Designer": { 
      "id": "2af5b799-f6bf-7f20-a6eb-943274f18373" 
     }, 
     "AWS::CloudFormation::Init": { 
      "config": { 
      "commands": { 
       "test": { 
       "command": "echo \"$MAGIC\" > /tmp/test.txt", 
       "env": { 
        "MAGIC": "I come from the environment!" 
       } 
       } 
      } 
      } 
     } 
     } 
    } 
    } 
} 
+1

/var/log/cfn-init.log에서 아무것도? – at0mzk

+0

은 /var/log/cfn-init.log의 내용을 게시합니다. – Daniel777

답변

2

--resource 인수가 UserData의 cfn-init 명령에 전달되어 문제가 발생할 가능성이 있습니다. 이 인수는 케이스 EC2I3WADD에있는 MetaData가 포함 된 리소스의 논리적 리소스 이름과 일치해야합니다.

"/usr/local/bin/cfn-init --stack ", { "Ref": "AWS::StackName" }, " --resource EC2I3WADD", " --region ", { "Ref": "AWS::Region" } 

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-init.html

관련 문제