cqlsh命令无法通过Ansible工作

时间:2019-03-22 02:25:54

标签: cassandra ansible

下面有一个有趣的剧本,可以在远程cassandra群集上运行特定的命令

{"changed": true, "cmd": "cqlsh -e abc.cql", "delta": "0:00:00.001835", 
"end": "2019-03-22 02:13:41.799578", "failed": true, "rc": 127, "start": 
"2019-03-22 02:13:41.797743", "stderr": "/bin/sh: 1: cqlsh: not found", 
"stdout": "", "stdout_lines": [], "warnings": []}

运行此剧本后,我们在错误下方得到提示

command

也尝试过使用cqlsh -f abc.cql模块,但没有成功 但是,当在Cassandra服务器上手动尝试map.removeObjects(map.getObjects ()) 时,它可以工作。

如何通过ansible剧本来执行此操作?

2 个答案:

答案 0 :(得分:1)

如果cqlsh的完整路径不在$ PATH环境变量中,则必须指定该路径。

答案 1 :(得分:1)

检查cqlsh.py文件夹中是否存在cqlsh/usr/bin文件,如果没有,则将其复制,因为似乎您已通过提取tar文件配置了cassandra。

我在环境中也遇到了同样的问题。

还要复制cqlshlib,在这种情况下,您可以在/etc/cassandra/conf/中找到它并将其粘贴到/usr/local/lib/python2.7/dist-packages/

您上面的剧本看起来不错,应该可以解决问题。