下面有一个有趣的剧本,可以在远程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剧本来执行此操作?
答案 0 :(得分:1)
如果cqlsh
的完整路径不在$ PATH环境变量中,则必须指定该路径。
答案 1 :(得分:1)
检查cqlsh.py
文件夹中是否存在cqlsh
和/usr/bin
文件,如果没有,则将其复制,因为似乎您已通过提取tar文件配置了cassandra。
我在环境中也遇到了同样的问题。
还要复制cqlshlib
,在这种情况下,您可以在/etc/cassandra/conf/
中找到它并将其粘贴到/usr/local/lib/python2.7/dist-packages/
您上面的剧本看起来不错,应该可以解决问题。