[英]gitlab-ci.yml bash script to update AWS route53 invalid yaml
我正在嘗試在GitLab中創建作業以在部署應用程序時更新該應用程序的DNS。 我有一個可以在gitlab-runner上運行的bash oneliner。 但是我無法在gitlab-ci.yml文件中對其進行驗證。 這是在gitlabRunner上運行的原始腳本。
TARGET_ZONEID="Z2T1234"; TARGET_FQDN="appName.domain.com."; echo '{ "Comment": "DDNS update", "Changes":[ { "Action": "UPSERT", "ResourceRecordSet": { "ResourceRecords": [ { "Value": "web_server.domain.com" } ], "Name": "'"$TARGET_FQDN"'", "Type": "CNAME", "TTL": 60} } ] }'
這就是我在Gitlab-ci.yml中擁有的方式
update_public_dns:
script:
- TARGET_ZONEID="Z2T1234"; TARGET_FQDN="appName.domain.com."; echo '{ "Comment": "DDNS update", "Changes":[ { "Action": "UPSERT", "ResourceRecordSet": { "ResourceRecords": [ { "Value": "web_server.domain.com" } ], "Name": "'"$TARGET_FQDN"'", "Type": "CNAME", "TTL": 60} } ] }'
失敗並顯示以下錯誤: (<unknown>): did not find expected key while parsing a block mapping at line 3 column 5.
在互聯網上搜索了幾個小時后,我發現一個建議,指示我應該轉義所有引號。 因此,我嘗試了以下操作:(注意,我取出了其中一個變量以嘗試簡化腳本。)
update_public_dns:
script:
- echo '{ \"Comment\": \"DDNS update\", \"Changes\": [ { \"Action\": \"UPSERT\", \"ResourceRecordSet\": { \"ResourceRecords\": [ { \"Value\": \"web_server.panosoft.com\" } ], \"Name\": \"appName.domain.com\", \"Type\": \"CNAME\", \"TTL\": 60} } ] }' | aws route53 change-resource-record-sets --hosted-zone-id "Z2TLDA3UA15TJ8" --change-batch file:///dev/stdin'
結果是此錯誤:
(<unknown>): mapping values are not allowed in this context at line 3 column 54
我現在正竭盡全力試圖解決這個問題。 有什么建議么?
僅供參考,我不想創建一個bash腳本,然后再從gitlab調用它,因為我希望使用項目變量來自定義web_server和appName設置。
在第一個YAML示例中,在純標量(不帶引號)中,您不能具有諸如:
冒號+空格)之類的序列,因為它們將指示鍵值對。
如果將其轉換為雙引號標量,則必須轉義雙引號和任何帶反斜杠的現有反斜杠。
如果將其制成單引號標量,則必須通過將其加倍來轉義任何單引號。
將字符串轉換為標量的最簡單方法是使其成為塊樣式文字標量:
update_public_dns:
script:
- |-
TARGET_ZONEID="Z2T1234"; TARGET_FQDN="appName.domain.com."; echo '{ "Comment": "DDNS update", "Changes":[ { "Action": "UPSERT", "ResourceRecordSet": { "ResourceRecords": [ { "Value": "web_server.domain.com" } ], "Name": "'"$TARGET_FQDN"'", "Type": "CNAME", "TTL": 60} } ] }'
在這樣的標量沒有逃逸完成和:
不會引起問題可能發生。 破折號|
表示需要刪除最后的換行符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.