
我有一個 Deployment Manager 範本/架構,我想根據我呼叫的 template.yaml 動態包含 cloud-init 的不同啟動腳本選項。在我的 template.jinja 中,我有:
metadata:
items:
- key: startup-script
value: |
{{ imports['startup-script-pre']|indent(14, true) }}
{{ imports['startup-script-custom']|indent(14, true) }}
{{ imports['startup-script-post']|indent(14, true) }}
所有導入都包含在最終輸出中,但是其中的 jinja2 沒有被處理,它會留下像 {{ env["name"] }} 這樣的東西,導致 cloud-init 失敗。在 GCP 控制台內,擴充配置如下所示:
systemctl daemon-reload
systemctl enable {{ env["name"] }}
systemctl start {{ env["name"] }}
顯然 cloud-init 不知道該如何處理。
有沒有辦法強制對這些進口進行 jinja 處理,而不是僅僅插入原始資料?
答案1
範例中有一個範例:
- 這個神器檔:
- 在 VM 元資料鍵中呈現: