Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible 从url获取变量值_Ansible - Fatal编程技术网

Ansible 从url获取变量值

Ansible 从url获取变量值,ansible,Ansible,我是ansible的新手,我正在努力实现以下目标: 这是示例剧本,我在HKLM:\SOFTWARE\myapp\Desk\下创建了一个名为“test”的注册表项,添加了两个名为hello和hi的条目,并为hello和hi分配了一个相同的值“world” 我想从存储在存储库或某个url中的某个文件中获取hello和hi的值。hello和hi的值将不同。。这可能吗 --- - hosts: web tasks: - name: Create and add reg entries

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

这是示例剧本,我在HKLM:\SOFTWARE\myapp\Desk\下创建了一个名为“test”的注册表项,添加了两个名为hello和hi的条目,并为hello和hi分配了一个相同的值“world”

我想从存储在存储库或某个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
更新:

对于一个新手来说,这里有一些改进,我可以用key-value迭代所有项,但是我想要一个key:value文件,我想要ansible迭代所有左侧键并创建它们,同时用右侧值填充它们。这就是win\u Regedit中的条目应该有key,数据应该有值

---
 - 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\u vars
模块:

include_vars:
        file: vars.yml
编辑您想要执行的操作可能如下所示(没有尝试win_regedit,因为我没有任何windows节点):

创建一个vars.yml:

---
var1: 'key1'
var2: 'key2'
d1: "{
  '{{var1}}': 'val1',
  '{{var2}}': 'val2'
}"
然后启动以下剧本(请参阅with_dict声明):


我问错什么了吗?这一招的
值得称赞:(我应该问如何做到这一点。)你能详细说明一下吗?很高兴我们能提供帮助。如果你觉得有答案帮助解决了你的问题,请点击绿色复选标记,将其标记为“接受”。这有助于将重点放在仍然没有答案的老年人身上。尽管我没有使用它,但我感谢你提供的帮助。再次感谢有没有可能有一个key:value对格式的文件,我想将它们存储在一个url中,我想获取它们,并使用win_Regedit按原样创建key和valueis@windowws关于key:value对,这不是上面vars.yml中显示的吗?(例如,var1是键,val1是值)存储在url中意味着什么?(它是一个REST端点,是一个网页吗…)关于win_regedit,我不能说我对windows一无所知(尽管我不知道windows节点上的行为,但您可能希望检查可能有帮助的命令模块)谢谢回复,是的,我想要一个key:value格式的文件,我会将它存储在一个url、一个网页中,可以是html或json。你的例子是正确的,但不是“var1的值”我只想要var1,而且它也应该自动拉入,我不会在这里给出密钥。我希望你明白我的问题,文件中的任何内容都应该是created@windowws然后,我只需使用
get_url
模块添加一个任务,在应用include_vars和任何其他任务之前,从您的url中提取一个文件。请参阅我在上面编辑的剧本。更新了我的问题,基本上我不想对每个条目使用\u项,我想从文本文件或json或html中获取这些内容
 ---
    - 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}}"