cloud-init userdata의 write_file 콘텐츠에서 매개변수 확장을 중지합니다.

cloud-init userdata의 write_file 콘텐츠에서 매개변수 확장을 중지합니다.

배경

저는 Terraform과 cloud-init를 사용하여 Ubuntu VM을 프로비저닝하고 있습니다.

Terraform 템플릿에는 bash 스크립트 작성 지침이 user_data포함된 cloud-init 섹션이 포함되어 있습니다. write_file계층 구조는 다음과 같습니다.

  • 지형 템플릿
    • 클라우드 초기화 사용자 데이터
      • 콘텐츠 작성
        • 배쉬 스크립트

Bash 스크립트에는 다음 기능이 있습니다

mkcd() {
        mkdir -p "${1}"
        cd "${1}"
        }

문제 및 질문

파일이 VM 내부에 기록되면 다음과 같습니다.

mkcd() {
        mkdir -p "1"
        cd "1"
        }

${1}only 로 대체되었습니다 1. 원하는 동작은 Terraform 템플릿에 나타나는 것과 똑같이 작성된 파일에 함수가 나타나도록 하는 것입니다.

이와 같이 작성된 파일에 함수를 표시하려면 어떻게 해야 합니까? :

mkcd() {
        mkdir -p "${1}"
        cd "${1}"
        }

문제 해결

나는 또한 이것을 시도했습니다 :

mkcd() {
        mkdir -p "$\{1}"
        cd "$\{1}"
        }

파일은 표시된 대로 정확하게 작성되지만 백슬래시는 유지됩니다.

관련 정보