2016-09-22 3 views
0

cfn-init 내의 명령 모듈을 통해 환경 변수를 설정하려고합니다.cfn-init 내의 명령 모듈을 사용하여 cloudformation의 환경 변수를 설정하십시오.

"commands": { 
       "set-env": { 
       "env": { 
        "HOSTNAME": "fb-iaas.elevatebilling.com" 
       }, 
       "cwd": "~", 
       "command": "echo \"$HOSTNAME\" > test.txt" 
       } 
      }, 

는 그리고 이것은 내가 업데이트되지 않습니다

2016-09-22 10:26:53,638 DEBUG Running command set-env 
2016-09-22 10:26:53,639 DEBUG No test for command set-env 
2016-09-22 10:26:53,655 INFO Command set-env succeeded 
2016-09-22 10:26:53,655 DEBUG Command set-env output: 

init.log CFN-그러나 환경 변수 HOSTNAME에서 볼 수있는 출력됩니다. 누군가 내가 뭘 잘못하고 있는지 설명해 주시겠습니까?

덕분에이를 발견하는 방법

답변

0

당신이 변수가 업데이트되지 않는 것을 말한다? "test.txt"를 열어서 파이프로 연결된 것을 읽었거나 인스턴스로 ssh하고 "echo $ HOSTNAME"을 실행 했습니까? 옵션 -

ENV를 : CFN-초기화 (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-init.html)로 명령을 실행에 AWS의 문서는 "ENV"옵션이 말 때문에 물어 이유입니다. 명령의 환경 변수를 설정합니다. 이 속성 은 기존 환경을 추가하지 않고 덮어 씁니다.

"env"를 사용하여 설정 한 환경 변수는 환경 변수가있는 명령에 대해서만 존재합니다. "test.txt"파일에서 변수가 원하는 것으로 설정되었지만 "echo $ HOSTNAME"을 실행할 때 읽지 않으면 변수가 명령에만 존재하기 때문입니다. 환경 변수가 지속되도록하려면 Cloudformation 템플릿의 UserData 섹션에서 "내보내기"를 사용하여 환경 변수를 설정하는 것이 좋습니다.

관련 문제