将寄存器的值赋给Ansible中的另一个变量

将寄存器的值赋给Ansible中的另一个变量,ansible,ansible-2.x,ansible-inventory,Ansible,Ansible 2.x,Ansible Inventory,嗨,假设我有一个剧本如下 tasks: name: get json from api uri: url: http://return-host-info-json.com register: host_info roles: - role: hostname 我需要处理此主机信息并在其他角色中使用它 如何将此主机信息分配给另一个变量,以便在需要时将其传递给主机名角色和其他角色?假设您确实拥有上述剧本,那么它将不会运行,因为它在任何级别都无效(缺少播放节、错误缩

嗨,假设我有一个剧本如下

tasks:
  name: get json from api
    uri:
      url: http://return-host-info-json.com
    register: host_info
roles:
- role: hostname
我需要处理此主机信息并在其他角色中使用它
如何将此主机信息分配给另一个变量,以便在需要时将其传递给主机名角色和其他角色?

假设您确实拥有上述剧本,那么它将不会运行,因为它在任何级别都无效(缺少播放节、错误缩进、任务应为列表……)。关于你的问题,它太模糊了。有几种方法可以实现您所描述的目标。你试过什么?你到底有什么问题?你可以看到:multple在你的剧本中扮演,pretasks在同一个剧本中扮演。嗨@Zeitounator是的,我是ansible的新手。谢谢你指出我的错误。我试图调用一个API,另一个角色(主机名)将处理该API结果。我曾尝试使用set_facts和vars设置变量,但无法在主机名角色中调用它。当我像myvar那样设置它们时,它显示未定义的变量:“{{host_info}”。因为
任务
是在您的剧本的
角色
小节之后播放的。看看
pre_tasks
@Zeitounator,太棒了!这正是我需要的。现在我可以设置一些变量。谢谢