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}"
        }

ファイルは示されているとおりに正確に作成されますが、バックスラッシュは保持されます。

関連情報