在 YAML 中声明和使用变量 (Percy.io)
Declare and use variable in YAML (Percy.io)
您好,我有一个如下所示的 YAML 文件 -
- name: Name 1
url: http://localhost:8080/page1
- name: Name 2
url: http://localhost:8080/page2
- name: Name 3
url: http://localhost:8080/page3
如您所见,http://localhost:8080/
是 url
属性 的公共部分。
有没有办法声明一个像 hostname
这样的变量并在整个文件中重用它?
我查看了 this 文档并尝试了以下方法,但它不起作用 -
- hostname: "{{http://localhost:8080}}"
- name: Name 1
url: {{hostname}}/page1
- name: Name 2
url: {{hostname}}/page2
- name: Name 3
url: {{hostname}}/page3
但这不起作用。求助!
例如剧本
- hosts: localhost
vars:
hostname: "http://localhost:8080"
l1:
- name: Name 1
url: "{{ hostname }}/page1"
- name: Name 2
url: "{{ hostname }}/page2"
- name: Name 3
url: "{{ hostname }}/page3"
tasks:
- debug:
var: l1
给予
ok: [localhost] =>
l1:
- name: Name 1
url: http://localhost:8080/page1
- name: Name 2
url: http://localhost:8080/page2
- name: Name 3
url: http://localhost:8080/page3
当您将列表项放入文件时,例如
shell> cat name-url.yml
- name: Name 1
url: "{{ hostname }}/page1"
- name: Name 2
url: "{{ hostname }}/page2"
- name: Name 3
url: "{{ hostname }}/page3"
使用 lookup 插件 模板 并将 YAML 字符串转换为列表,例如下面的剧本给出了相同的结果
- hosts: localhost
vars:
hostname: "http://localhost:8080"
tasks:
- set_fact:
l1: "{{ lookup('template', 'name-url.yml')|from_yaml }}"
- debug:
var: l1
我想提出这个建议,你看起来像是在为你正在快照的站点的基础 URL 做这个。您可以将 --base-url
标志传递给 snapshot
命令:
$ npx percy snapshot --base-url http://localhost:8080 snapshots.yml
snapshots.yml
可能是:
- name: Name 1
url: /page1
- name: Name 2
url: /page2
- name: Name 3
url: /page3
## or
- url: /page1
- url: /page2
- url: /page3
您好,我有一个如下所示的 YAML 文件 -
- name: Name 1
url: http://localhost:8080/page1
- name: Name 2
url: http://localhost:8080/page2
- name: Name 3
url: http://localhost:8080/page3
如您所见,http://localhost:8080/
是 url
属性 的公共部分。
有没有办法声明一个像 hostname
这样的变量并在整个文件中重用它?
我查看了 this 文档并尝试了以下方法,但它不起作用 -
- hostname: "{{http://localhost:8080}}"
- name: Name 1
url: {{hostname}}/page1
- name: Name 2
url: {{hostname}}/page2
- name: Name 3
url: {{hostname}}/page3
但这不起作用。求助!
例如剧本
- hosts: localhost
vars:
hostname: "http://localhost:8080"
l1:
- name: Name 1
url: "{{ hostname }}/page1"
- name: Name 2
url: "{{ hostname }}/page2"
- name: Name 3
url: "{{ hostname }}/page3"
tasks:
- debug:
var: l1
给予
ok: [localhost] =>
l1:
- name: Name 1
url: http://localhost:8080/page1
- name: Name 2
url: http://localhost:8080/page2
- name: Name 3
url: http://localhost:8080/page3
当您将列表项放入文件时,例如
shell> cat name-url.yml
- name: Name 1
url: "{{ hostname }}/page1"
- name: Name 2
url: "{{ hostname }}/page2"
- name: Name 3
url: "{{ hostname }}/page3"
使用 lookup 插件 模板 并将 YAML 字符串转换为列表,例如下面的剧本给出了相同的结果
- hosts: localhost
vars:
hostname: "http://localhost:8080"
tasks:
- set_fact:
l1: "{{ lookup('template', 'name-url.yml')|from_yaml }}"
- debug:
var: l1
我想提出这个建议,你看起来像是在为你正在快照的站点的基础 URL 做这个。您可以将 --base-url
标志传递给 snapshot
命令:
$ npx percy snapshot --base-url http://localhost:8080 snapshots.yml
snapshots.yml
可能是:
- name: Name 1
url: /page1
- name: Name 2
url: /page2
- name: Name 3
url: /page3
## or
- url: /page1
- url: /page2
- url: /page3