如何在ansible playbook中为变量添加多个值?

时间:2016-06-14 10:37:47

标签: variables ansible ansible-playbook

我已经在我的剧本中为变量定义了一个值:

 war_name: abc

我在角色中将此war_name称为:

- name: Download war file
   get_url:
    url=http://url/directory/packages/tomcat/{{ war_name }}.war

现在问题是我必须在playbook中为变量war_name分配2个值 像

war_name: abc,xyz 

我怎么能在我的剧本中做到这一点?

如果将with_items用作:

- name: Download war file
       get_url:
        url=http://url/directory/packages/tomcat/{{ item }}.war
   with_items:
     - abc
     - xyz
   when: "'server' in app_name"

导致错误:

  

任务[tomcat:下载战争档案]   **********************************************失败:[10 .xxx](item = abc)=> {“failed”:true,“item”:“abc”,“msg”:“缺少必需的   参数:dest“}失败:[10.x.x.x](item = xyz)=> {”失败“:true,   “item”:“xyz”,“msg”:“缺少必需的参数:dest”}

2 个答案:

答案 0 :(得分:2)

您缺少dest

所需的get_url参数

以下是您的任务的修改版本:

- name: Download war file
  get_url:
    url: "http://url/directory/packages/tomcat/{{ item }}.war"
    dest: "/path-where-you-want-to-place/{{ item }}"
  with_items:
    - abc
    - xyz
  when: "'server' in app_name"

希望能帮到你

答案 1 :(得分:0)

你能做的就是这样的事情

war_name:
  war1: one
  war2: two

这基本上是一本字典。虽然我不确定你到底想做什么?我想你想在同一个地方放置2个不同名字的战争,如果是这样你可以实际使用with_items