【问题标题】:Ansible execute a command shell bash to docker container or volumeAnsible 对 docker 容器或卷执行命令 shell bash
【发布时间】:2019-03-18 17:42:02
【问题描述】:

我假装在一个带有 ansible 的 docker 容器中执行一个 bash 文件。第一个任务就成功了。

我的任务:

- 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

运行剧本,1个任务就ok了

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

回复:

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

回复:

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

【问题讨论】:

    标签: bash docker ansible kapacitor


    【解决方案1】:

    从您的 shell 命令中删除 -ti 标志。

    它用于启动持久的交互式会话 - 在运行 Ansible 游戏时您对这两种会话都不感兴趣。

    【讨论】:

      猜你喜欢
      • 2017-01-07
      • 2020-06-24
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 2016-08-06
      • 1970-01-01
      • 2014-10-15
      • 1970-01-01
      相关资源
      最近更新 更多