2017-04-25 6 views
0

ich installierte cassandra snapsprester unter Verwendung pip install cassandra_snapshotter. Es funktioniert gut, wenn ich es auf Terminal mit dem Befehl ausführencassandra-snapsprester: nicht gefunden

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 

, wenn ich denselben Befehl mit ansible versuchte es mit Fehlern endet

„Start“: „2017.04.25 10: 02: 39,111333 “ "stderr": "/ bin/sh: 1: cassandra-Snapshotter: nicht gefunden", "stderr_lines": [ "/ bin/sh: 1: cassandra-Snapshotter: nicht gefunden" ]


- 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 

Antwort

0

Pip installiert ausführbare Dateien an einem eigenen Speicherort. Dieser Ort befindet sich wahrscheinlich nicht im Suchpfad. Sie können entweder die PATH-Umgebungsvariable in Ihrem Ansible festlegen und sie so erweitern, dass sie diesen Speicherort enthält, oder Sie können einfach einen "what cassandra_snapshotter" in der Befehlszeile ausführen und den vollständigen Pfad zur ausführbaren Datei cassandra_snapshotter in Ihrem ansible einfügen.

Auch: Ich glaube nicht, dass Sie irgendwelche Shell-Funktionen in diesem cassandra_snapshotter Aufruf verwenden. Es ist besser, wenn möglich https://docs.ansible.com/ansible/command_module.html zu verwenden.

+0

Ich habe das auch versucht. seine in /home/ubuntu/.local/bin, wenn ich das in ausführbare Datei gebe, verweigert es die Erlaubnis zu werfen. Aber ich gehe ansässig im Sudo-Modus. –

+0

ich benutzte Shell, weil Befehl "[Errno 2] keine solche Datei oder Verzeichnis" ohne ausführbare Datei gab. Selbst jetzt, nachdem zum Befehl gewechselt und eine ausführbare Datei hinzugefügt wurde, wird eine Berechtigung verweigert. Kannst du mir bei dieser Berechtigung helfen, die verweigert wird? @Bernd –

+0

Nun ja, auch root muss den gesetzten Dateiberechtigungen nachkommen. Ich bin mir nicht sicher, warum es in diesem Home-Verzeichnis ist, aber meine Vermutung ist, dass du den 'pip install cassandra_snapshotter' als Benutzer ubuntu gemacht hast und dieser pip (heutzutage) nur das pkg im Home-Verzeichnis des Benutzers installiert. Das erklärt auch, warum es nicht im Root-Benutzerpfad ist. – Bernd