Ansible (v2.0) için ecs_taskdefinition modülünü kullanmaya çalışıyorum ve sanırım temel Ansible YAML gotcha'da takılıyorum. Ansible'da, değişken değerlerini tamsayıya zorlamak için bir yol var mı?
modülü için örnek gereğince, eğercpu
ve
memory
için tamsayı değerler sağlamak, bu şekilde beklenen işleri: Ben Templatable olmak
memory
ve
cpu
istiyorum
- name: "Create task definition"
ecs_taskdefinition:
containers:
- name: simple-app
cpu: 10
memory: 300
essential: true
image: "httpd:2.4"
portMappings:
- containerPort: 80
hostPort: 80
rağmen. Böylece farklı ortamlar için aynı kapsayıcı tanımını kullanabileceğim. Yukarıdaki ile
APP_ENV: "test"
test:
containers:
simple_app:
memory: 1920
cpu: 2560
- name: "Create task definition"
ecs_taskdefinition:
containers:
- name: simple-app
cpu: "{{vars.get(APP_ENV).containers.simple_app.cpu | int}}"
memory: "{{vars.get(APP_ENV).containers.simple_app.memory | int}}"
essential: true
image: "httpd:2.4"
portMappings:
- containerPort: 80
hostPort: 80
, ben botocore API hata alıyorum:
botocore.exceptions.ParamValidationError: Parameter validation failed:
Invalid type for parameter containerDefinitions[0].memory, value: 1920, type: <type 'str'>, valid types: <type 'int'>, <type 'long'>
Invalid type for parameter containerDefinitions[0].cpu, value: 2560, type: <type 'str'>, valid types: <type 'int'>, <type 'long'>
bu düzeltilebilir mi aslında tamsayılar için bu değerleri dönüştürmek için denemek için yanıtlayıcı 'modülünü güncellemek zorunda kalmadan?
Bu konuyla ilgili herhangi bir yol bulamadım. Bu özelliği bu özel modüle önermek. https://github.com/ansible/ansible-modules-extras/pull/1715 –
Değişken | int değişkenini 2.0.2'de test ediyorum ve iyi çalışıyor. Bence hata "" alıntılar önce ve sonra lütfen alıntıları siliniz {{vars.get (APP_ENV) .containers.simple_app.cpu | int}} ve tekrar deneyin. –
@RaulHugo [Ansible doc] (http://docs.ansible.com/ansible/YAMLSyntax.html#gotchas) başı olarak teklif vermeden çalışacağını düşünmüyorum. “Dahası, Ansible değişkenler için“ {{var}} ”kullanır. Bir kolondan sonraki değer "{" ile başlıyorsa, YAML bunun bir sözlük olduğunu düşünecek, bu yüzden alıntı yapmanız gerekir, şu şekilde: foo: "{{variable}}" '' ' –