Ansible搜索子列表以获取价值

脉冲

Webhook会触发AWX作业,我想根据服务在特定主机上运行部署,因为它们在不同的服务器上运行。我需要知道哪个服务器使用该服务将其设置为var,以便在以下播放中可用作主机。

我在vars.yaml中的变量如下所示:

staging_hosts:
  server1: ['service1', 'service2', 'service3']
  server2: ['service4', 'service5', 'service6']
  server3: ['service7', 'service8', 'service9']

剧本:

- name: write deployment hosts
  hosts: localhost
  vars:
    deployment_hosts: absent
  vars_files:
    - ./group_vars/vars.yaml
  tasks:
    - set_fact:
        modified_repos: (small regex filter to find modified repository)
    - set_fact:
        deployment_hosts: "{{ item }}"
      when: '{{ modified_repos }} in {{ item }}'
      with_list:
        - "{{ staging_hosts }}"

- name: connect to Cluster
  hosts: "{{ hostvars['localhost']['deployment_hosts'] }}"

我该如何处理此警告和错误?

[WARNING]: conditional statements should not include jinja2 templating
delimiters such as {{ }} or {% %}. Found: {{ modified_repos }} in {{ item }}
fatal: [localhost]: FAILED! => {"msg": "The conditional check '{{ modified_repos }} in {{ item }}' failed. True {% else %} False {% endif %}): unhashable type: 'list'

哦,我忘了提。重要的是,如果修改后的回购包括例如service1和service4,那么Deployment_hosts也可以包含两个主机。

弗拉基米尔·博特卡

问:“如果修改后的回购包括service1和service4,则deployment_hosts也可以包含两个主机。”

答:使用相交滤镜。例如,剧本

- hosts: localhost

  vars:
    staging_hosts:
      server1: ['service1', 'service2', 'service3']
      server2: ['service4', 'service5', 'service6']
      server3: ['service7', 'service8', 'service9']
    modified_repos: ['service1', 'service4']

  tasks:
    - set_fact:
        deployment_hosts: "{{ deployment_hosts|default([]) + [item.key] }}"
      loop: "{{ staging_hosts|dict2items }}"
      when: modified_repos|intersect(item.value)|length > 0
    - debug:
        var: deployment_hosts

  deployment_hosts:
  - server1
  - server2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在数组列表中搜索子字符串

来自分类Dev

多维,从父级中搜索子数组获取信息

来自分类Dev

从点击列表中获取价值

来自分类Dev

从字典列表中获取价值

来自分类Dev

ansible模板为列表增加价值-

来自分类Dev

弹性搜索子串搜索

来自分类Dev

在Swift中搜索字典数组以获取价值

来自分类Dev

改进搜索结构片段以获取价值的性能

来自分类Dev

Ansible 获取索引列表

来自分类Dev

PostgreSQL在字符串列中搜索子字符串列表

来自分类Dev

如何使多选下拉列表并在MS Access 2016中搜索子表单

来自分类Dev

在列表中搜索子字符串,并以逗号分隔所有匹配结果

来自分类Dev

在Python列表中搜索子字符串时出现NameError

来自分类Dev

如何在大列表中搜索子字符串<String> - Java

来自分类Dev

CAS LDAP搜索子树

来自分类Dev

DataTables搜索子行内容

来自分类Dev

在mongoDB上搜索子字段

来自分类Dev

在lucene中搜索子串

来自分类Dev

弹性搜索子聚合失败

来自分类Dev

弹性搜索子串匹配

来自分类Dev

如何从Tcl中的列表中获取价值?

来自分类Dev

使用sortable在列表中获取价值

来自分类Dev

获取下拉列表JavaScript的价值

来自分类Dev

无法从循环python的列表中获取价值

来自分类Dev

从动态列表中获取价值

来自分类Dev

从填充的下拉列表中获取价值

来自分类Dev

从动态下拉列表中获取价值

来自分类Dev

从列表中获取价值(C#UWP)

来自分类Dev

Python:从Json字典列表中获取价值