使用playbook ansible错误提供cassandra。(Vagrant VM)

时间:2016-10-18 16:41:26

标签: cassandra ansible

我正在尝试在虚拟机中安装和配置(使用Ansible)Cassandra,但我有以下问题:

  

失败! => {“已更改”:false,“failed”:true,   “msg”:“AnsibleUndefinedVariable:'SimpleSnitch'未定义”}

第五个任务中出现此问题:“更改/etc/cassandra.yaml”

文件.yml是这样的:

- name: "add datastax cassandra debian repository"
  apt_repository: repo='deb http://debian.datastax.com/community stable main'

- name: "Add datastax repo key"
  apt_key: url=http://debian.datastax.com/debian/repo_key

- name: "Install cassandra"
  apt: name=dsc30 state=latest update_cache=yes install_recommends=yes

- name: "Install cassandra-tools"
  apt: name=cassandra-tools state=latest update_cache=yes install_recommends=yes

- name: "Change /etc/cassandra.yaml"
  template: src=cassandra.yaml.j2 dest=/etc/cassandra/cassandra.yaml

- name: "Restart cassandra"
  service: name=cassandra state=restarted

- name: stop cassandra
  service: name=cassandra state=stopped

- name: clear test data
  shell: rm -rf /var/lib/cassandra/data/system/*

- name: clear test data
  shell: rm -rf /var/lib/cassandra/data/system_data/*

- name: start cassandra
  service: name=cassandra state=started

- name: "Stop to back the Cassandra node"
  pause: seconds=30

提前致谢

2 个答案:

答案 0 :(得分:1)

这种错误通常意味着您忘记将字符串换成引号。问题不在你已粘贴的剧本文件中。在其他地方你设置cassandra.yaml.j2模板使用的某种snitch变量,而你忘记包装" SimpleSnitch"引号中的值,因此ansible错误地将其解释为未定义的变量名。

此外,即使对于开发群集,通常没有理由不养成使用Gossiping Property File小报的习惯。它的配置非常简单,并且可以让您在某天将配置迁移到prod集群。

答案 1 :(得分:0)

cassandra.yaml.j2 文件中,您在 endpoint_snitch:部分使用变量 SimpleSnitch 。出于这个原因,您遇到此错误: FAILED! => {"changed": false, "failed": true, "msg":"AnsibleUndefinedVariable: 'SimpleSnitch' is undefined"}