jinja2相关内容
我的大多数位置都有 4 个以上的 DNS 源,但有一些位置较少.每个位置都有自己的 dns4_ips 列表变量,如下所示: dns4_ips:- dns_A- dns_B- dns_C- dns_C 我的 resolv.conf 模板如下所示: 域example.com搜索 example.com dom2.example.com dom3.example.com{% for nameser
..
我正在使用 jinja2 模板来安装/升级软件包. 逻辑是为当前安装的版本设置一个变量,并将其与可用版本进行比较.它运行良好,但是一旦我们传入 10.x,比较就停止工作了. 是否可以强制转换变量以便正确识别 10.9.8 大于 9.8.7? 谢谢 current_version=['9.8.7'] {% if current_version 解决方案 有一个特
..
所以我有一个使用 Jinja2 模板创建日志文件的 ansible playbook.每次我运行剧本时,它都会从 customer.yml 中提取客户信息并将完成的模板输出到“stunnel.conf"文件中.模板工作正常,但我试图找到一种方法来附加以前的“stunnel.conf",而不是使用模板模块覆盖它.我希望手动将文本添加到 'stunnel.conf' 的开头而不是覆盖它.你认为这可能吗
..
在嵌套变量列表中映射属性时,我无法检索其键. 我想从以下强调文本变量中检索“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
..
我需要遍历所有主机并为不包含在 somegroup 组中的主机生成配置文件: {% for host in groups.all 如果主机不在组中['somegroup'] %} 但是如果某个组不存在,它就会失败('StrictUndefined' 类型的参数是不可迭代的). 我如何正确地写这个以避免两个不同的循环: {% if groups['somegroup'] 已定义 %}{%
..
我正在用 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' 这个键值对中
..
这是我在Ansible, Boto, AWS - 参数 containerDefinitions[0].memory 的无效类型. 我不明白如何正确组合提供的答案. 在我原来的 ansible/roles/ecs_cluster_init/tasks/main.yaml 文件中: ## ECS 任务和服务定义- 堵塞:- 名称:创建 ECS Service1 任务定义ecs_task
..
我正在使用 --extra-vars "lan=10.10.10.1" 将变量传递给 ansible 我现在需要增加这个 ip 地址,使最后一个八位字节为 0.2,所以它等于 10.10.10.2. 如何在 ansible 中实现这一点? 解决方案 一行: - set_fact: new_ip="{{ lan | regex_replace('(^.*\.).*$', '\\1
..
我的剧本中有这个: - name:获取有关容器的事实shell: "docker ps -f name=jenkins --format {%raw%}{{.Names}}{% endraw %}"注册:容器 请注意,我插入了 {%raw%} 和 {%endraw%} 以便 ansible 不会评估“{{". 如果我运行这个,我会得到这个错误: 致命:[本地主机]:失败!=> {"
..
我试图为每个 ec2 实例运行一个模板任务,从其他注册的变量中获取变量.实例日期存储在ec2.tagged_instances中,另外两个接口的IP信息分别存储在eni_dc和eni_spoke中. 显示 IP 提取的调试示例: - 调试:msg: "{{ eni_dc.results|json_query(s_query) }}"变量:s_query: "[?interface.atta
..
我有一个类似于以下内容的字典列表: “子网":[{"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":
..
我知道 ansible 支持这种形式的模板中的循环: {% for host in group['all'] %}"{{ host }}"{% if not loop.last %},{% endif %}{% 结束为 %} 当我运行 ansible 时,正如人们所期望的那样,它会遍历主机文件中的所有内容. 当我使用 --limit 命令行参数运行 ansible 时,我只想循环匹配限制
..
我正在尝试将 ansible 用于参数化 docker 部署.我希望能够通过命令行指定图像、版本和各种不同的环境变量. Image、Version等可以直接指定,但是docker模块的env参数需要字典.这是一个缩短的剧本示例: -name:一些部署码头工人:[..]姓名:我的名字[..]环境:FOO:酒吧ANOTHERFOO:另一个酒吧 环境变量是在运行时选择的,因此无法直接在提供的额
..
在我的变量文件中,我需要定义一个列表变量,其项目具有相似的模式,并且还共享一些(冗余)信息.我想在循环中生成列表变量,而不是手动输入所有这些信息. 例如,我有 100 台主机,主 IP 地址为 192.168.100.[1:100],每个主机都有一个额外的 IP 地址 10.0.1.[1:100].所有主 IP 使用相同的网关,比如 192.168.100.254,所有额外的 IP 使用另一
..
我的输出如下: [{'stderr': '错误:无法打开文件',},{'stderr': '',}] Jinja 狙击手: {{ php_command_result.results |地图(属性='stderr')|排序 |加入('\r - ') }}" 最后返回尾随的 - 因为 stderr 是空的.如何忽略空值? 解决方案 你尝试了吗 rejectattr? {{ php_
..
我想从 URL 中提取一些正则表达式匹配项.我能做到这一点的唯一方法是: - 名称:为 github URL 设置正则表达式模式set_fact: pattern="^(git\@github\.com\:|https?\:\/\/github.com\/)(.*)\/([^\.]+)(\.git)?$"- 名称:提取组织名称set_fact: project_repo="{{ deploy_
..
当我尝试在 nxos 设备上运行一些命令时,输出的末尾有一个空格.我必须将输出与现有的变量列表进行比较.最后的空格导致比较失败.如何在字符串列表中使用 .strip() 函数? - name:之前的当前 TACACS 服务器主机nxos_command:命令:- sh 运行 |包括“tacacs-server 主机"注册:runconfserafter- 调试:变量:运行confseraft
..
我有点惊讶地发现他的代码段失败并出现 IOError 异常,而不是默认省略该值. #!/usr/bin/env ansible-playbook -i localhost,---- 主机:本地主机任务:- 调试: msg="{{ 查找('ini', 'foo section=DEFAULT file=missing-file.conf') | default(omit) }}" 如何在不引发异
..
在我的剧本中,我有这个: #更多的东西- 包括:deploy_new.yml变量:服务类型:"{{expose_service == 'true' |三元('NodePort','ClusterIP')}}";时间:service_up|失败 当 expose_service 为 true 时,我希望将 service_type 设置为 NodePort,否则设置为 ClusterIP.
..
我在 ansible playbook 中有以下变量 var1:“字符串"多变的:- 名称:“{{ var1 }}-xxx"sshKey:“{{ 查找('文件','temp/xxx.pub')}}"- 名称:“{{ var1 }}-yyy"sshKey:“{{ 查找('文件','temp/yyy.pub')}}"- 名称:“{{ var1 }}-zzz"sshKey:“{{ 查找('文件','t
..