2017-04-25 19 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