小编she*_*rri的帖子

如何获取小写的 ansible 事实

我正在收集可靠的事实。序列号有大写和小写两种形式。见下文。

5A2c32a-f1G85g-2035-0483-1fe9c129216d 
Run Code Online (Sandbox Code Playgroud)

我需要将该事实与另一个完全小写的序列号进行比较。请参见下文。

5a2c32a-f1g85g-2035-0483-1fe9c129216d 
Run Code Online (Sandbox Code Playgroud)

如果我使用 jinja2 过滤器转换为小写。然后我无法操作 json 输出。例如。我试过这个

- set_fact:
     facts: "{{ facts | lower | to_json }}"

- debug:
    var: facts.instance
Run Code Online (Sandbox Code Playgroud)

它抛出错误

TASK [play : set_fact] ******************************************************************************
ok: [localhost]

TASK [play : debug] ******************************************************************************
ok: [localhost] => {
    "facts.instance": "VARIABLE IS NOT DEFINED!"
}
Run Code Online (Sandbox Code Playgroud)

但如果我facts只调试。它给了我输出。下面的作品,

- set_fact:
     facts: "{{ facts | lower | to_json }}"

- debug:
    var: facts
Run Code Online (Sandbox Code Playgroud)

但我需要获得更多的价值facts.instance.disk

python jquery jinja2 ansible ansible-facts

6
推荐指数
1
解决办法
1万
查看次数

如何使用分隔符在 Ansible 中分割值

我正在 Ansible 中设置一个事实,并且该变量的值带有连字符,例如“ dos-e1-south-209334567829102380 ”。我想拆分,所以我只能得到“dos-e1-south”

这里是戏

- set_fact:
    config: "{{ asg.results|json_query('[*].launch_configuration_name') }}"

- debug:
    var: config
Run Code Online (Sandbox Code Playgroud)

python split filter jinja2 ansible

4
推荐指数
2
解决办法
3万
查看次数

Ansible - 在输出上应用过滤器,然后注册为变量

我正在注册操作的输出,然后应用过滤器来显示值。但我也想将该显示的值注册为变量。我无法将其注册为变量。有谁知道这个问题的解决方案?

这是我的剧本

---
- name: Filtering output to register in a variable
  hosts: localhost
  gather_facts: no
  tasks:
    - name: register filtered output to a  variable 
      uri:
        url: https://example.com/api/id
        method: GET 
        user: administrator
        password: password
        force_basic_auth: yes 
        validate_certs: no
      register: restdata
    - name: Display the output
      debug: msg="{{ restdata.json.parameter[1] }}"
Run Code Online (Sandbox Code Playgroud)

我想知道。会不会更简单。如果我们先过滤输出然后将其注册为变量?有谁知道这是怎么做到的吗 ?

python jquery json jinja2 ansible

3
推荐指数
1
解决办法
6630
查看次数

在ansible中用多个值替换多个模式

我在ansible中使用regex_replace过滤器。我可以让它工作,但它真的很麻烦。这就是我正在做的

- set_fact:
    variable: "{{ value | regex_replace("84","89") | regex_replace("76","78") | regex_replace("45","23"}}"
Run Code Online (Sandbox Code Playgroud)

有没有一种方法,我可以通过管道 regex_replace 一次并用多个值替换多个模式。

python regex json ansible

3
推荐指数
1
解决办法
7608
查看次数

标签 统计

ansible ×4

python ×4

jinja2 ×3

jquery ×2

json ×2

ansible-facts ×1

filter ×1

regex ×1

split ×1