gpt4 book ai didi

ansible - 从 url 获取变量值

转载 作者:行者123 更新时间:2023-12-05 06:40:12 25 4
gpt4 key购买 nike

我是ansible的新手,我正在努力实现以下目标,

这是示例剧本,在这里我在 HKLM:\SOFTWARE\myapp\Desk\下创建了一个名为“test”的注册表项,我添加了 2 个条目,其中包含名为 hello 和 hi 的项目,我正在分配一个相同的值“世界”到你好和嗨。

我想从存储在存储库或某些 url 中的某个文件中获取 hello 和 hi 的值..hello 和 hi 的值将不同..这可能吗?

---
- hosts: web
tasks:
- name: Create and add reg entries
win_regedit:
path: HKLM:\SOFTWARE\myapp\Desk\Test
entry: "{{ item }}"
data: world
type: string
state: present
with_items:
- hello
- hi

更新:

对于新手来说,这里有一些改进,我可以使用键值遍历 with_items,但我想要一个带有键值的文件,我希望 ansible 遍历所有左侧键并创建它们,还用右边的值填充它们..即 win_Regedit 中的条目应该有键,数据应该有值

---
- hosts: web
tasks:
- name: Create and add reg entries
win_regedit:
path: HKLM:\SOFTWARE\myapp\Desk\Test
entry: "{{ item.regkey }}"
data: "{{ item.regvalue}}"
type: string
state: present
with_items:
- regkey: hello
regvalue: world
- regkey: hi
regvalue: universe

最佳答案

要包含来自某个文件的变量,您可以使用 include_vars 模块:

include_vars:
file: vars.yml

编辑 你想做的可能是像下面这样的事情(没有尝试 win_regedit,因为我没有任何 windows 节点):

创建一个 vars.yml:

---
var1: 'key1'
var2: 'key2'
d1: "{
'{{var1}}': 'val1',
'{{var2}}': 'val2'
}"

然后启动以下剧本(请参阅 with_dict 语句):

 ---
- hosts: localhost
remote_user: my_user

tasks:
- name: pull var_file
url: http://example.com/path/to/vars
dest: /path/to/vars.yml
mode: 0440
- name: include_vars
include_vars:
/path/to/vars.yml
- name: Create and add reg entries
win_regedit:
path: HKLM:\SOFTWARE\myapp\Desk\Test
entry: "{{ item.key }}"
data: "{{ item.value}}"
type: string
state: present
with_dict: "{{d1}}"

感谢 this answer with_dict 技巧

关于ansible - 从 url 获取变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43171890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com