jinja2

Ansible 比较两个字典中的两个值
jinja2

Ansible 比较两个字典中的两个值

我有一个简单的问题,我有两个字典,一个是静态的,里面有一些数据,另一个是存储在变量(带寄存器)中的 stat 命令的结果。目的只是将主机上某些文件的校验和与存储在静态字典中的校验和进行比较。最简单的方法是什么?我想确保值对应于正确的 id,因此不仅要按列表循环,还要使用 id 作为索引(因为 id 号不是相互跟随的,所以我们有随机的 id 值)。 static_dir: id1: <checksum> id2: <checksum> id5: <checksum> result_dir: results...

Admin

Ansible:将带有键:值对的逗号分隔字符串转换为字典
jinja2

Ansible:将带有键:值对的逗号分隔字符串转换为字典

我正在通过额外的变量启动 docker-compose 服务 (apache solr) 的安装剧本。这些变量是在执行时设置的,因为这个剧本应该是灵活的,并且一台服务器上存在多个配置。 我的想法是,用户可以在 ansible ui(ansible 信号量)中将变量设置为字符串: 变量名project_cores 变量值(字符串)main_en:english,main_de:german 我想将这些核心迭代为字典。我最终想要的是: { { name: main_en, language: english }, { na...

Admin

条件语句不应该包含带有字典列表的 jinja2
jinja2

条件语句不应该包含带有字典列表的 jinja2

我该如何消除这个警告? 任务按预期进行,但我想这样做正确地 我试图找出该值ansible_facts.services["{{ component }}.service"].state并将其保存在变量中,但没有成功。 --- - hosts: localhost become: no gather_facts: true vars: component: firewalld tasks: - name: Populate service facts ansible.builtin.service_facts: ...

Admin

在 Ansible 中的字典列表中访问指定字典键的值
jinja2

在 Ansible 中的字典列表中访问指定字典键的值

我正在安装 ansible 注册变量中的包列表并使用以下命令输出它debug: community.general.homebrew: name: "{{ package }}" state: present register: package_install until: package_install is succeeded loop: - pam-reattach - pinentry-mac - jorgelbg/tap/pinentry-touchid loop_control: ...

Admin

循环遍历状态文件中的变量并使用目标模板中的变量
jinja2

循环遍历状态文件中的变量并使用目标模板中的变量

在 Ansible 中,我可以循环遍历字典/列表列表,然后在 Ansible 任务中使用循环变量,也可以在调用的模板中使用循环变量。 我正在尝试在 Salt 中执行相同操作,但似乎不可能。至少不是以我习惯的方式。 我的支柱中有以下内容。 routes: ens4f0np0: - address: 192.168.1.0 netmask: 255.255.255.192 gateway: 172.18.48.1 - address: 172.16.2.0 netmask: 255.255.255.224 ...

Admin

使用 Jinja2 模板遍历嵌套列表/字典
jinja2

使用 Jinja2 模板遍历嵌套列表/字典

我正在尝试通过使用 Ansible 生成 /etc/exports 文件来动态配置系统中的多个 NFS 服务器。我希望能够使用 jinja2 模板来做到这一点。根据我的导出列表,我无法找出 jinja2 模板。 我的 nfs 角色中定义了以下变量: site_nfs_servers: ['ansibletarget1', 'ansibletarget2'] exports: - server: "ansibletarget1" shares: - path: "/my/first/share/path" client...

Admin

Ansible:填充包含不可变插值的模板
jinja2

Ansible:填充包含不可变插值的模板

我需要制作一个剧本,它将采用一个模板文件,插入一些变量并将生成的文件放入另一个目录。 问题的第一部分是生成的文件将用作另一个 Ansible 剧本,因此源文件包含其他插值,并且这些插值必须按原样保留。例如,假设源文件包含以下内容: key1: {{ value1 }} key2: {{ value2 }} 的值key1必须由我的剧本进行插值(它将成为变量的值value1),但同时value2需要保持原样(它应为{{ value2 }}。 问题的第二部分是,我不能只修改源文件并在花括号前添加反斜杠,因为此文件正在被其他进程更新。此外,由于模板文件会不时更新,...

Admin

Ansible-使用 if elif else 根据条件定义变量
jinja2

Ansible-使用 if elif else 根据条件定义变量

我有以下多个角色:haproxy,java,nginx,tomcat ├── ansible-test-host.yml ├── hapoxy ├── java ├── myplaybook.yml ├── nginx └── tomcat 基本剧本是:myplaybook.yml如下所示: --- - hosts: test-local connection: local vars: java_version: "1.8.0" roles: - java 因此,我的要求取决于指定的角色 java/tomcat/nginx ...

Admin

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

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

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

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

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

Admin

根据特定条件更新字典列表
jinja2

根据特定条件更新字典列表

我想用 ansible 更新列表,其中包含基于特定条件的字典项 例如: list1: - {"name": "test1", "uid": 100, "gid": 250} - {"name": "test2", "uid": 101, "gid": 250} - {"name": "test3", "uid": 103, "gid": 250} - {"name": "test4", "uid": 104, "gid": 250} list2: [100, 101] list3: [102,103] 如果 uid 与 list2 中的...

Admin

ansible - Docker 容器中环境变量的 json 模板
jinja2

ansible - Docker 容器中环境变量的 json 模板

我正在尝试将一行 JSON 字符串分配给 Docker 容器中的环境变量。JSON 如下所示: {"ip_access": {"IP_whitelist": {"192.168.99.19/32": "grafana/status (Provider)"}}, "vhosts": {"prometheus1": {"dns_names": ["prometheus1.company.internal"], "add_lines_443": ["include IP_whitelist;", "set $prometheus http://prometheus...

Admin

Ansible webserver 备份:拉取其他主机变量来生成备份脚本
jinja2

Ansible webserver 备份:拉取其他主机变量来生成备份脚本

我正在使用 Ansible 来管理一组不同的云 Linux 服务器。我编写了一个脚本,通过 rync 通过 ssh 将备份拉到备份服务器。所有主机变量都在host_vars/example.com.yml文件中进行管理,每个文件包含以下内容: ansible_host: example.com ansible_user: user ansible_port: 22 ansible_ssh_private_key_file: "~/.ssh/id_ed25519" 它们在文件中分组hosts如下: [webservers] example.com foo.c...

Admin