jinja2相关内容

使用jinja2比较版本号

我正在使用 jinja2 模板来安装/升级软件包. 逻辑是为当前安装的版本设置一个变量,并将其与可用版本进行比较.它运行良好,但是一旦我们传入 10.x,比较就停止工作了. 是否可以强制转换变量以便正确识别 10.9.8 大于 9.8.7? 谢谢 current_version=['9.8.7'] {% if current_version 解决方案 有一个特 ..
发布时间:2021-11-11 01:33:35 其他开发

在 Ansible 中使用模板模块附加文件

所以我有一个使用 Jinja2 模板创建日志文件的 ansible playbook.每次我运行剧本时,它都会从 customer.yml 中提取客户信息并将完成的模板输出到“stunnel.conf"文件中.模板工作正常,但我试图找到一种方法来附加以前的“stunnel.conf",而不是使用模板模块覆盖它.我希望手动将文本添加到 'stunnel.conf' 的开头而不是覆盖它.你认为这可能吗 ..
发布时间:2021-11-11 01:32:56 其他开发

Ansible/Jinja2 - 在列表中映射嵌套键

在嵌套变量列表中映射属性时,我无法检索其键. 我想从以下强调文本变量中检索“tls_cert_file"的密钥: vault_config_listener:- tcp:- 地址:“0.0.0.0:8200"- tls_cert_file: "/etc/ssl/wildcard.crt"- tls_key_file: "/etc/ssl/private/wildcard.key"- tls ..
发布时间:2021-11-11 01:32:08 其他开发

Ansible/Jinja:带有未定义语句的条件

我需要遍历所有主机并为不包含在 somegroup 组中的主机生成配置文件: {% for host in groups.all 如果主机不在组中['somegroup'] %} 但是如果某个组不存在,它就会失败('StrictUndefined' 类型的参数是不可迭代的). 我如何正确地写这个以避免两个不同的循环: {% if groups['somegroup'] 已定义 %}{% ..
发布时间:2021-11-11 01:31:25 其他开发

Ansible 模板在破折号后跳过字符串

我正在用 Ansible 中的一组变量模板化一个文件. 我的 defaults/main.yaml 文件中的一些条目是: jenkins_plugins:'蚂蚁':'1.8''antiisamy-markup-formatter': '1.5''apache-httpcomponents-client-4-api':'4.5.3-2.1''kubernetes':'1.3' 这个键值对中 ..
发布时间:2021-11-11 01:30:54 其他开发

如何在 jinja 模板中结合 json 字典和列表

这是我在Ansible, Boto, AWS - 参数 containerDefinitions[0].memory 的无效类型. 我不明白如何正确组合提供的答案. 在我原来的 ansible/roles/ecs_cluster_init/tasks/main.yaml 文件中: ## ECS 任务和服务定义- 堵塞:- 名称:创建 ECS Service1 任务定义ecs_task ..
发布时间:2021-11-11 01:30:29 其他开发

Ansible 递增 IP 地址

我正在使用 --extra-vars "lan=10.10.10.1" 将变量传递给 ansible 我现在需要增加这个 ip 地址,使最后一个八位字节为 0.2,所以它等于 10.10.10.2. 如何在 ansible 中实现这一点? 解决方案 一行: - set_fact: new_ip="{{ lan | regex_replace('(^.*\.).*$', '\\1 ..
发布时间:2021-11-11 01:28:33 其他开发

在 ansible shell 命令中使用 {{ 和 }}

我的剧本中有这个: - name:获取有关容器的事实shell: "docker ps -f name=jenkins --format {%raw%}{{.Names}}{% endraw %}"注册:容器 请注意,我插入了 {%raw%} 和 {%endraw%} 以便 ansible 不会评估“{{". 如果我运行这个,我会得到这个错误: 致命:[本地主机]:失败!=> {" ..
发布时间:2021-11-11 01:28:19 其他开发

来自 with_items 的 Ansible 设置变量

我试图为每个 ec2 实例运行一个模板任务,从其他注册的变量中获取变量.实例日期存储在ec2.tagged_instances中,另外两个接口的IP信息分别存储在eni_dc和eni_spoke中. 显示 IP 提取的调试示例: - 调试:msg: "{{ eni_dc.results|json_query(s_query) }}"变量:s_query: "[?interface.atta ..
发布时间:2021-11-11 01:28:13 Python

在 Ansible 的字典列表中搜索键

我有一个类似于以下内容的字典列表: “子网":[{"name": "subnet1-name34554",“地址":“192.168.1.100"“id:"id1“},{"name": "subnet2-name67678",“地址":“192.168.1.200"“id":“id2"},{"name": "subnet3-name23345",“地址":“192.168.1.300"“id": ..
发布时间:2021-11-11 01:27:31 其他开发

循环 jinj2a 模板中的主机,尊重 --limit

我知道 ansible 支持这种形式的模板中的循环: {% for host in group['all'] %}"{{ host }}"{% if not loop.last %},{% endif %}{% 结束为 %} 当我运行 ansible 时,正如人们所期望的那样,它会遍历主机文件中的所有内容. 当我使用 --limit 命令行参数运行 ansible 时,我只想循环匹配限制 ..
发布时间:2021-11-11 01:27:28 其他开发

ansible 提供额外变量作为嵌套 json

我正在尝试将 ansible 用于参数化 docker 部署.我希望能够通过命令行指定图像、版本和各种不同的环境变量. Image、Version等可以直接指定,但是docker模块的env参数需要字典.这是一个缩短的剧本示例: -name:一些部署码头工人:[..]姓名:我的名字[..]环境:FOO:酒吧ANOTHERFOO:另一个酒吧 环境变量是在运行时选择的,因此无法直接在提供的额 ..
发布时间:2021-11-11 01:27:03 其他开发

Ansible:在循环中生成变量

在我的变量文件中,我需要定义一个列表变量,其项目具有相似的模式,并且还共享一些(冗余)信息.我想在循环中生成列表变量,而不是手动输入所有这些信息. 例如,我有 100 台主机,主 IP 地址为 192.168.100.[1:100],每个主机都有一个额外的 IP 地址 10.0.1.[1:100].所有主 IP 使用相同的网关,比如 192.168.100.254,所有额外的 IP 使用另一 ..
发布时间:2021-11-11 01:25:59 其他开发

使用 Jinja 循环时如何忽略列表中的元素?

我的输出如下: [{'stderr': '错误:无法打开文件',},{'stderr': '',}] Jinja 狙击手: {{ php_command_result.results |地图(属性='stderr')|排序 |加入('\r - ') }}" 最后返回尾随的 - 因为 stderr 是空的.如何忽略空值? 解决方案 你尝试了吗 rejectattr? {{ php_ ..
发布时间:2021-11-11 01:25:45 其他开发

Ansible 条状空白

当我尝试在 nxos 设备上运行一些命令时,输出的末尾有一个空格.我必须将输出与现有的变量列表进行比较.最后的空格导致比较失败.如何在字符串列表中使用 .strip() 函数? - name:之前的当前 TACACS 服务器主机nxos_command:命令:- sh 运行 |包括“tacacs-server 主机"注册:runco​​nfserafter- 调试:变量:运行confseraft ..
发布时间:2021-11-11 01:25:39 其他开发

当ansible查找失败时如何回退到默认值?

我有点惊讶地发现他的代码段失败并出现 IOError 异常,而不是默认省略该值. #!/usr/bin/env ansible-playbook -i localhost,---- 主机:本地主机任务:- 调试: msg="{{ 查找('ini', 'foo section=DEFAULT file=missing-file.conf') | default(omit) }}" 如何在不引发异 ..
发布时间:2021-11-11 01:25:08 其他开发