【发布时间】:2015-07-29 18:48:22
【问题描述】:
我有一本剧本,我正在使用 ec2 模块在 aws 中启动一个实例。为了更灵活,我通过提示输入主机名来询问。我在ec2 示例中找到了代码 sn-p,它允许您使用新启动的实例运行第二个剧本以进行进一步配置。
现在我想通过模块 hostname 设置主机名,但我无法访问第二个剧本中的变量。
这就是我的剧本的样子:
---
- hosts: localhost
...
vars_prompt:
- name: var_hostname
prompt: "Please enter the hostname"
private: no
tasks:
- name: Spin up instance
local_action:
module: ec2
...
register: ec2
- name: Add new instance to host group
add_host: hostname={{ item.public_ip }} groupname=launched
with_items: ec2.instances
- hosts: launched
...
tasks:
- name: Set hostname
hostname: name="{{ var_hostname }}"
fatal: [launched] => 一个或多个未定义变量:'var_hostname' 未定义
有没有办法将变量从一个剧本传递到另一个剧本?
我找到了Ansible best practice for passing vars to nested playbooks?,但不幸的是它没有我可以使用的解决方案。
【问题讨论】: