首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Hostvars跨不同主机使用变量的问题。错误:未定义变量

使用Hostvars跨不同主机使用变量的问题。错误:未定义变量
EN

Stack Overflow用户
提问于 2021-09-15 19:01:30
回答 1查看 459关注 0票数 0

我遇到的问题很简单。我有一个连接到的Windows 主机,可以根据一些数据创建一个新的AD用户。它目前是静态的,但在未来将是动态的。它采用一些变量加上随机性作为唯一性,并将它们放入一些变量中。

下一个游戏需要使用相同的变量来部署Windows 10虚拟机。我用“{hostvars‘’host‘}}”带他们去看下一出戏。但是,无论我尝试什么,我总是得到未定义的变量错误

代码语言:javascript
复制
fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: \"hostvars['windowsDA']\" is undefined\n\nThe error appears to be in '/etc/ansibleplaybooks/Orchestration/onboarduser': line 67, column 5, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n  - name: giveinfo\n    ^ here\n"}

我试过gather_facts了。我试过把原始的瓦尔斯装进瓦尔斯:.与将它们置于set_fact下相比,我尝试了多种类型的语法。但它不想起作用。这是我的剧本的简写版。其他人不需要知道。如果调试msg有效,那么它应该在任何地方都能工作。

代码语言:javascript
复制
- name: Make AD User
  hosts: windowsDA

  tasks:
    - name: Set variables as fact
      set_fact:
        var_random_string: "{{ lookup('community.general.random_string', length=3, special=false, base64=false) }}"
        var_name: Pieter
        var_lastname: Post
        var_department: IT
        var_underscore: _

    - name: Create User
      community.windows.win_domain_user:
        enabled: yes
        name: "{{var_name+var_lastname+var_underscore+var_random_string}}"
        firstname: "{{ var_name }}"
        surname: "{{ var_lastname }}"
        company: Poliforma
        password: P@ssw0rd
        password_expired: yes
        path: OU={{var_department}},DC=poliforma,DC=com
        state: present
        description: Werknemer van {{var_department}}Afdeling
        upn: "{{var_name+var_lastname+var_underscore+var_random_string}}@poliforma.com"
        user_cannot_change_password: no
        attributes:
          department: "{{var_department}}Afdeling"

- name: Clone the template and customize
  hosts: localhost
  vars:
    test: "{{ hostvars['windowsDA']['var_name'] }}"
    #hostvar_fact_var_name: #"{{hostvars['localhost']['fact_var_name']}}"
    #hostvar_fact_var_lastname: #"{{hostvars['localhost']['fact_var_lastname']}}"
    #hostvar_fact_var_underscore: #"{{hostvars['localhost']['fact_var_underscore']}}"
    #hostvar_fact_var_random_string: #"{{hostvars['localhost']['fact_var_random_string']}}"

  tasks:
  - name: giveinfo
    debug: msg="{{test}}"

有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-15 19:38:30

我相信如果你把你的存货安排如下,那就行了。

代码语言:javascript
复制
[your_group_name]
windowsDA ansible_host=188.88.88.88 etc.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69198531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档