jinja

Ansible:如果满足某个条件,则有条件地在 vars 文件中定义变量
jinja

Ansible:如果满足某个条件,则有条件地在 vars 文件中定义变量

根据 group_vars 中定义的变量的值(True/False),我尝试在 vars 文件中定义一些变量。它们的值取决于组 var 的值。 我当前的 var 文件如下所示: {% if my_group_var %} test: var1: value var2: value ... varn: value {% else %} test: var1: other_value var2: other_value ... varn: other_value {% endif %} 对于我的每一个角色,...

Admin

SaltStack 如果条件在运行命令时失败则映射值
jinja

SaltStack 如果条件在运行命令时失败则映射值

我正在尝试将一行回显到 sudoers 文件中,但我无法弄清楚该特定命令所需的正确语法。 gwconfig: cmd.run: {% if grains['ip4_gw'] == '192.168.1.1' %} - name: echo "%account_name ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers {% elif grains['ip4_gw'] == '192.168.1.2' %} - name: echo "not working" >> /...

Admin

在 Ansible 中使用带引号的字符串内的变量
jinja

在 Ansible 中使用带引号的字符串内的变量

请看这个工作游戏示例: - name: Display the URL hosts: all gather_facts: false vars: - host_domain: "testing.example.com" - default_url: "http://def.localhost.{{ host_domain }}" - my_url: "{{ some_undeclared_var | default(default_url) }}" tasks: - debug: msg: "{...

Admin

将 Jinja 变量插入到带引号的字符串中
jinja

将 Jinja 变量插入到带引号的字符串中

我正在使用 Ansible 构建一个运行带有 Bind9 和 Freeradius 支持的 Samba Active Directory 的 Podman 容器,但遇到了一些障碍。 在我的容器中,Samba 使用 DLZ_BIND 作为后端运行良好,但我需要将 Freeradius 集成到容器中,这样我才能支持通过 VPN 登录。 我正在尝试模板化以下行/etc/freeradius/3.0/mods-available/mschap: ntlm_auth = "/usr/bin/ntlm_auth --allow-mschapv2 --request...

Admin

ansible/jinja 从复杂的 json 返回中提取多个属性,拒绝特定的匹配
jinja

ansible/jinja 从复杂的 json 返回中提取多个属性,拒绝特定的匹配

我尝试从 API 调用返回的复杂负载中提取多个属性,同时拒绝“名称”字段中具有特定值的成员。考虑以下负载: { "npod_volumes": { "changed": false, "failed": false, "volumes": [ { "accessible_by_host_uuids": [ "9e8ba77c-8e09-4c69-b893-876742f83f34", "ad5a5431-17e1-4023-8373...

Admin

Ansible jinja2 模板以 JSON 格式提供,作为 extra-vars
jinja

Ansible jinja2 模板以 JSON 格式提供,作为 extra-vars

我有这个 jinja2 模板: # {{ ansible_managed }} {% for vhost in nginx_vhosts %} {%- if vhost.name == item.name -%} # redirect www to non-www server { listen {{ nginx_port }}; listen [::]:{{ nginx_port }}; port_in_redirect off; server_name www.{{ vhost.name }}; return...

Admin

通过 Jinja 条件语句向 Ansible playbook 提供主机值
jinja

通过 Jinja 条件语句向 Ansible playbook 提供主机值

我有一个 Ansible 角色,我想根据特定条件在特定主机上执行。 我想填写hostsAnsible Tower 调查问卷。这是我的剧本: - name: HTTP Response Deploy Automation hosts: "{% if geo == 'LHR' %}'dblhr002' {% elif geo == 'SJC' %}'dbsjc003' {% endif %}" gather_facts: true roles: - http-response-deploy 选择 LHR 时出现以下错误: [WARNING...

Admin

从 Ansible 中的同一列表项访问变量中的字典值
jinja

从 Ansible 中的同一列表项访问变量中的字典值

我正在使用 Ansible 部署一些虚拟机,并且我有一个定义虚拟机的列表变量。我想知道我是否可以让其中一个字典项使用另一个字典项作为同一列表元素中的变量。例如,假设我定义了以下变量: nodes: - name: vm1 aliases: - vm1 - vm1.local - name: vm2 aliases: - vm2 - vm2.local 我可以做这样的事吗? nodes: - name: vm1 aliases: - "{{ name }}" ...

Admin

使用 ansible (或其他工具) 自动创建配置文件
jinja

使用 ansible (或其他工具) 自动创建配置文件

我必须创建一个管道,以便自动创建-部署和更新网络设备(交换机-路由器-防火墙,主要是思科)的配置文件。我想到了很多方法来完成这项工作,但我犹豫了。该过程将是读取数据文件,搜索字符串(例如:主机名包含“NR”),如果可以,则在库中选择好的模板以创建配置文件。 我尝试过使用 ansible,但事情对我来说并不清楚。另一种方法是 jinja 库,我尝试过类似这样的方法 #! /usr/bin/python import sys from jinja2 import Template template = """ hostname {{hostname}} ...

Admin

使用 jinja 在 Ansible 中动态创建列表
jinja

使用 jinja 在 Ansible 中动态创建列表

我需要动态设置一个新的列表类型变量list var。 以下是基本的剧本示例: vars: app_instances: - host_name: host1-domain inst_count: 3 - host_name: host2-domain inst_count: 1 - host_name: host3-domain inst_count: 1 tasks: - set_fact: instance_config: &gt...

Admin

如何在 Debian 和 FreeBSD 中的 ansible 中根据给定的 ip 地址选择网络接口?
jinja

如何在 Debian 和 FreeBSD 中的 ansible 中根据给定的 ip 地址选择网络接口?

我正在寻找一个表达式来获取 Linux 和 FreeBSD 中分配给该 iface 的 ip 地址的接口名称。 这个问题基于这个答案:https://serverfault.com/a/948288/416946 在 Debian 上,此 jinja2 表达式将返回接口对象(来自 ansible facts)given_ip iface_for_ip: >- {{ ansible_facts | dict2items | selectattr('value.ipv4', 'defined') | selectattr('value.ip...

Admin

这个 jinja2 过滤器在 Ansible 中起什么作用?d({})
jinja

这个 jinja2 过滤器在 Ansible 中起什么作用?d({})

我尝试理解以下代码块在 Ansible-Playbook 中的作用 environment: '{{ inventory__environment | d({}) | combine(inventory__group_environment | d({})) | combine(inventory__host_environment | d({})) }}' 据我所知,environment:关键字在目标主机上设置环境变量。双胡须{{ xxx }}标记了一个 jinja2 表...

Admin

带有循环的 Ansible vmware_host_facts
jinja

带有循环的 Ansible vmware_host_facts

我正在尝试获取多个 ESXi 主机上的所有数据存储的列表(它们都位于不同的 vCenter,因此我必须使用带有字典的循环来获取 ESXi 主机的正确 vCenter,否则主机不会出现) 我的问题是试图理解输出。我读过文档,但似乎找不到一个清晰的方法来获得我想要的输出。请考虑文档中的以下内容作为工作示例 - 在一个 ESXi 主机上。 - name: Gather vmware host facts from vCenter vmware_host_facts: hostname: "{{ vcenter_server }}" user...

Admin

带有 jinja 模板的 cloud-init 脚本未通过 iinja 处理
jinja

带有 jinja 模板的 cloud-init 脚本未通过 iinja 处理

我有一个使用 jinja 模板的 cloud-init 脚本。它看起来像这样: ## template: jinja #cloud-config merge_how: - name: list settings: [append] - name: dict settings: [no_replace, recurse_list] runcmd: - mkdir -p /opt/collectd write_files: - path: /opt/collectd/collectd.conf content: | Host...

Admin

将两个列表转换为特定的字典,以便进行排序
jinja

将两个列表转换为特定的字典,以便进行排序

我想转换以下列表: rtt: [38,1,97] site: ["A","B","C"] 存入字典中,例如: dict: [ {'rtt':38, 'site':'A'},{'rtt':1, 'site':'B'},{'rtt':97,'site':'C'}] 因此我可以使用以下方法在 rtt 上对其进行排序: x = dict | sort(attribute:'rtt') 然后按正确的顺序提取站点属性: x | map(attribute:'site') | list 应该给出:[ 'B', 'A', 'C'] ...

Admin