我正在使用ansible设置一个aws cassandra集群,并尝试将动态ip传递给一个yml模板文件。我将IP分配给ansible组变量,并希望在填充cassandra config yml时使用它。在 Play 1
我最初分配的小组如下:
file : roles/gather_cassandra_hosts/tasks/main.yml
- name: Setup hosts for Cassandra nodes
add_host: hostname={{ node.public_dns_name }} groups=cassandraNodes
然后在 Play 2
我试图使用此变量设置以下标准cassandra配置:
file : roles/install_cassandra/tasks/main.yml
- name: Override cassandra.yaml file
template:
src: cassandra.yaml
dest: apache-cassandra-3.11.3/conf/
with_items:
- cassandraNodes
.
file : roles/install_cassandra/templates/cassandra.yaml
listen_address: {{ cassandraNodes }}
但我得到了以下错误:
failed: [ec2-xx-xx-xx-xx.region-1.compute.amazonaws.com] (item=cassandraNodes) => {
"changed": false,
"item": "cassandraNodes",
"msg": "AnsibleUndefinedVariable: 'cassandraNodes' is undefined"
}
一开始我能用 cassandraNodes
很好定义我的节点。。。
- name: Play 2. Install Cassandra
hosts: cassandraNodes
…但只是模板中的这个替换似乎找不到它。
1条答案
按热度按时间mrzz3bfm1#
好的,所以对我有效的是在
vars
节Play 2
,并将该值传递给模板:剧本:
角色:
模板: