2017-04-25 60 views
0

我使用pip install cassandra_snapshotter安装了cassandra快照程序。它的工作很好,如果我用命令cassandra-snapshotter:未找到

sudo cassandra-snapshotter --s3-bucket-name=vivek-bucket 
--s3-base-path=cassandra --aws-access-key-id=XXXX --aws-secret-access-key=XXX backup --hosts=172.31.2.85 --user ubuntu 
--sshkey=/home/ubuntu/XXXX.pem --cassandra-conf-path=/etc/dse/cassandra --use-sudo=yes --new-snapshot 

当我试图用ansible它错误

结束相同的命令在终端运行“开始”:“2017年4月25日10:02:39.111333 ”, “标准错误”: “/ bin/sh的:1:卡桑德拉-snapshotter:未找到”, “stderr_lines”:[ “/ bin/sh的:1:卡桑德拉-snapshotter:未找到” ]


- name: snapshot and backup 
    hosts: localhost 
    connection: local 
    become: yes  
    tasks: 
     - name: taking snapshot 
     shell: cassandra-snapshotter --s3-bucket-name=vivek-bucket --s3-base-path=cassandra --aws-access-key-id=XXXX --aws-secret-access-key=XXX backup --hosts=172.31.2.85 --user ubuntu --sshkey=/home/ubuntu/XXXX.pem --cassandra-conf-path=/etc/dse/cassandra --use-sudo=yes --new-snapshot 

回答

0

pip在其自己的位置安装可执行文件。该位置可能不在搜索路径中。您可以在您的可变环境中设置PATH环境变量,并将其扩展为包含该位置,或者您可以在命令行上手动执行'which cassandra_snapshotter',并将cassandra_snapshotter可执行文件的完整路径放入您的命令行中。

另外:我不认为你在cassandra_snapshotter调用中使用任何'shell'功能。如果可能,最好使用https://docs.ansible.com/ansible/command_module.html

+0

我也试过。它在/home/ubuntu/.local/bin,如果我把它放在可执行文件中,它会抛出权限被拒绝。但即时通讯在sudo模式下运行。 –

+0

我使用shell,因为命令给了“[Errno 2]没有这样的文件或目录”没有可执行文件。即使在更改为命令并添加可执行文件之后,某些权限也会被拒绝。你可以帮我拒绝这个权限吗?@Bernd –

+0

甚至根目录也必须强制设置文件权限。我不确定它为什么在这个主目录中,但我的猜测是你做了'pip install cassandra_snapshotter'作为用户ubuntu,并且pip(现在)继续,并且只在用户主目录中安装pkg。这也解释了为什么它不在根用户路径中。 – Bernd