Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/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
向Cassandra配置模板Yaml添加Ansible变量_Cassandra_Automation_Ansible_Ansible Template - Fatal编程技术网

向Cassandra配置模板Yaml添加Ansible变量

向Cassandra配置模板Yaml添加Ansible变量,cassandra,automation,ansible,ansible-template,Cassandra,Automation,Ansible,Ansible Template,我正在使用Ansible设置AWS Cassandra集群,并尝试将动态IP传递给YML模板文件。我已将IP分配给Ansible组变量,并希望在填充我的Cassandra配置YML时使用它。在播放1中,我首先分配组,如下所示: file : roles/gather_cassandra_hosts/tasks/main.yml - name: Setup hosts for Cassandra nodes add_host: hostname={{ node.public_dns_name

我正在使用Ansible设置AWS Cassandra集群,并尝试将动态IP传递给YML模板文件。我已将IP分配给Ansible组变量,并希望在填充我的Cassandra配置YML时使用它。在
播放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

但我得到了以下错误:

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

…但只是模板中的这个替换似乎无法找到它。

好的,所以对我来说有效的是在
变量部分为
播放2
定义另一个变量,并将该值传递给模板:

剧本:

vars:
  nodes: "{{ groups['cassandraNodes'] }}"
角色:

模板:

listen_address: {{ nodes }}
- name: Override cassandra.yaml file
  template:
    src: cassandra.yaml
    dest: apache-cassandra-3.11.3/conf/
  with_items:
  - nodes
listen_address: {{ nodes }}