Команда cqlsh не работает через Ansible - PullRequest
1 голос
/ 22 марта 2019

У меня ниже ANSI Playbook для запуска определенных команд на удаленных кластерах Cassandra

---
- hosts: newcass
  become: yes
  become_user: root
  become_method: sudo
  gather_facts: True
  serial: 1

  tasks:
    - name: Execute CQLSH
#      shell: 'cqlsh -f /home/ubuntu/abc.cql'
      shell: 'cqlsh -f abc.cql'
#      command: "export CQLSH_NO_BUNDLED=true && cqlsh -f /home/ubuntu/abc.cql"
#      command: "cqlsh -f abc.cql"
      args:
        chdir: /home/ubuntu/
      register: cqlsh_result

    - debug:
         msg: "{{ cqlsh_result }}"

После запуска этой книги мы получаем ошибку ниже ошибки

{"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 вручную, это сработало.

Что можно сделать, чтобы запустить его через ANSIBLE PlayBook?

Ответы [ 2 ]

1 голос
/ 29 марта 2019

Проверьте, присутствуют ли файлы cqlsh.py и cqlsh в папке /usr/bin. Если нет, то скопируйте их, потому что кажется, что вы сконфигурировали cassandra путем извлечения файла tar.

Я столкнулся с той же проблемой в моей среде.

Также скопируйте cqlshlib, который в этом случае вы можете найти в /etc/cassandra/conf/ и вставьте его в /usr/local/lib/python2.7/dist-packages/

Ваши вышеперечисленные списки воспроизведения выглядят нормально, но это должно решить проблему.

1 голос
/ 22 марта 2019

Вы должны указать полный путь к cqlsh, если его нет в переменной среды $ PATH.

...