首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ansible中迭代变量

在Ansible中迭代变量
EN

Stack Overflow用户
提问于 2019-08-07 23:06:04
回答 1查看 132关注 0票数 1

我正在尝试为我的剧本中的各个模块使用相同的变量集(如您将看到的,只是有一些细微的变化)。

将它们作为“vars”包含在我的游戏的顶部似乎是合乎逻辑的,但后来我在提到它们时遇到了麻烦。到目前为止,我已经这样做了:

代码语言:javascript
复制
- name: destruction instance sur GCP
  hosts: localhost
  gather_facts: no
  vars:
    gcp_project: ansible-test-248409
    gcp_cred_kind: serviceaccount
    gcp_cred_file: /google/service-accounts/ansible-test-248409-fbadc808948d.json
    zone: europe-west1-b
    region: europe-west1
    machine_type: n1-standard-1
    machines:
      - webserver-1
      - webserver-2
      - webserver-3
      - devops-1
      - devops-2    

  tasks:
    - name: destruction des machines
      gcp_compute_instance:
          name: "{{ machines }}"
          state: absent
          zone: "{{ zone }}"
          project: "{{ gcp_project }}"
          auth_kind: "{{ gcp_cred_kind }}"
          service_account_file: "{{ gcp_cred_file }}"
          scopes:
            - https://www.googleapis.com/auth/compute


    - name: destruction des disques
      gcp_compute_disk:
          name: "{{ machines }}-disk"
          state: absent
          zone: "{{ zone }}"
          project: "{{ gcp_project }}"
          auth_kind: "{{ gcp_cred_kind }}"
          service_account_file: "{{ gcp_cred_file }}"
          scopes:
            - https://www.googleapis.com/auth/compute

这就给出了这个错误信息

代码语言:javascript
复制
[WARNING]: The value ['webserver-1', 'webserver-2', 'webserver-3', 'devops-1', 'devops-2'] (type list) in a string field was
converted to u"['webserver-1', 'webserver-2', 'webserver-3', 'devops-1', 'devops-2']" (type string). If this does not look like what
you expect, quote the entire value to ensure it does not change.
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Invalid JSON response with error: <HTML>\n<HEAD>\n<TITLE>Bad Request</TITLE
>\n</HEAD>\n<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\">\n<H1>Bad Request</H1>\n<H2>Error 400</H2>\n</BODY>\n</HTML>\n"}

使用“lookup”或“query”也不起作用。有人能看到我错过了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-07 23:51:38

您可以使用with_items:选项。

代码语言:javascript
复制
tasks:
- name: destruction des machines
  gcp_compute_instance:
      name: "{{ item }}"
      state: absent
      zone: "{{ zone }}"
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
  with_items: "{{ machines }}"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57397402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档