【发布时间】:2021-07-20 10:35:37
【问题描述】:
$ more defaults/mail.yaml
---
envs:
- dev:
acr-names:
- intake.azurecr.io
- dit.azurecr.io
- dev.azurecr.io
subscription-id: xxx
- uat:
acr-names:
- stagreg.azurecr.io
subscription-id: yyy
- prod:
acr-names:
- prodreg.azurecr.io
subscription-id: zzz
我想写一个 ansible play 来复制 azure https://docs.microsoft.com/en-us/azure/container-registry/container-registry-import-images#import-from-a-registry-in-a-different-subscription 注册表之间的图像
play 应该接受 2 个参数。 source_image 和 target_image,所以播放会将图像从源导入到目标
例如:
ansible-playbook sync-docker-image.yml -e source_image=dit.azurecr.io/repo1:v1.0.0.0 -e target_image=stagreg.azurecr.io/stage-repo:latest
2 个问题:
-
这里我如何在ansible playbook中找出source_image或target_image属于哪个env(dev,uat或prod),基于env,我想选择订阅ID。所以从上面的例子中,我想创建 2 个变量,分别叫 source_subscription 和 target_subscription 并将它们分别分配给 dev、uat 订阅。
-
在 YAML 中,是否可以根据键访问字典列表中的变量,例如 envs[dev] 之类的变量?
谢谢
【问题讨论】:
-
嗨,Yogendramummaneni,欢迎来到 SO。您需要edit your question 并包含到目前为止您尝试的代码,因为您当前的问题听起来像是其他人为您编写代码的要求列表。请阅读how to ask 页面,并特别注意MCVE 部分。祝你好运!