ansible – Appending To Lists And Dictionaries

今天在整理ansible安装k3s时,遇到了个问题,想法是在安装过程中对node能打多个label,  如: 定义hosts.ini

  其中k3s.service.j2模块中的定义如下:

  而生成的k3s.service应是这个结果:

  可以看到, 应该给node打两个label, 经反复尝试,终于生成了, 下面是我的k3s.yml:

  定义了: k3s_node_labels: “{{ k3s_node_labels|default([]) + [{‘node.kubernetes.io/’+item: ”}] }}” 意思是定义一个列表k3s_node_labels,将with_items中的变量append到列表中, 结果是这样:

  除了用+号, 也可以用union([item])   而如果这样定义的话: k3s_node_labels: “{{ k3s_node_labels|default([]) | combine({‘node.kubernetes.io/’+item: ”}) }}” 或 k3s_node_labels: “{{ k3s_node_labels|default({}) | combine({‘node.kubernetes.io/’+item: ”}) }}” 都将会这种结果:

  Read more…