Ansible выполнить командную оболочку bash для Docker контейнера или тома - PullRequest
0 голосов
/ 18 марта 2019

Я делаю вид, что выполняю bash-файл внутри контейнера докера с ansible.Первая задача - это ее успех.

Моя задача:

- name: Copy tickscripts
  copy:
    src: /home/debian/github/tick_playbook/roles/alertas
    dest: /var/lib/docker/volumes/kapacitor_storage/_data/

- name: Execute tickscripts
  shell: bash /var/lib/docker/volumes/kapacitor_storage/_data/alertas/run_alertas.sh

Имя контейнера: контейнер тома tick_kapacitor: kapaciotr_sotage

Запустите playbook и все задачи в порядке

root@teste:/# cat /var/lib/docker/volumes/kapacitor_storage/_data/alertas/

 run_alertas.sh  tasks/          tickscripts/

root@teste:/# cat /var/lib/docker/volumes/kapacitor_storage/_data/alertas/
#

Я также пытаюсь:

  - name: Execute tickscripts
  shell: docker exec -ti tick_kapacitor /bin/bash var/lib/kapacitor/alertas/run_alertas.sh

Resp:

TASK [alertas : Execute tickscripts] *******************************************
fatal: [192.168.85.79]: FAILED! => {"changed": true, "cmd": "docker exec -ti tick_kapacitor /bin/bash var/lib/kapacitor/alertas/run_alertas.sh", "delta": "0:00:00.043861", "end": "2019-03-18 17:52:50.542327", "failed": true, "rc": 1, "start": "2019-03-18 17:52:50.498466", "stderr": "the input device is not a TTY", "stdout": "", "stdout_lines": [], "warnings": []}
        to retry, use: --limit @/home/debian/github/tick_playbook/teste.retry

Я иду к машине и ставлю

  docker exec -ti tick_kapacitor /bin/bash var/lib/kapacitor/alertas/run_alertas.sh

Resp:

var/lib/kapacitor/alertas/tickscripts/cpu99_alert_stream.tick

1 Ответ

0 голосов
/ 19 марта 2019

Удалите флаг -ti из вашей команды оболочки.

Он используется для запуска постоянного интерактивного сеанса, который не интересует вас при запуске игры Ansible.

...