Как вызвать Ansible через Rundeck, используя Docker-контейнер? - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь позвонить в Ansible через Rundeck. Я создал файл dockercompose следующим образом:

version: '3.0'
services:
  Rundeck:
    stdin_open: true
    tty: true
    image: 'jordan/rundeck'
    ports:
      - '4440:4440/tcp'
    volumes:
     - /root/ansibledemo:/data

  ansible:
    stdin_open: true
    tty: true
    image: 'ansible/ansible:default'
    volumes:
     - /root/ansibledemo:/data1

С помощью этого файла я могу создать 2 службы, одна для Rundeck, а другая для Ansible. Но мой вопрос: когда я пытаюсь запустить задание из веб-интерфейса Rundeck, я сталкиваюсь со следующей проблемой:

/bin/sh: 1: ansible-playbook: not found
13:10:10            Result: 127
13:10:10            Failed: NonZeroResultCode: Result code was 127
13:10:10            Execution failed: 1 in project demo: [Workflow result: , step failures: {1=Dispatch failed on 1 nodes: [localhost: NonZeroResultCode: Result code was 127 + {dataContext=MultiDataContextImpl(map={ContextView(step:1, node:localhost)=BaseDataContext{{exec={exitCode=127}}}, ContextView(node:localhost)=BaseDataContext{{exec={exitCode=127}}}}, base=null)} ]}, Node failures: {localhost=[NonZeroResultCode: Result code was 127 + {dataContext=MultiDataContextImpl(map={ContextView(step:1, node:localhost)=BaseDataContext{{exec={exitCode=127}}}, ContextView(node:localhost)=BaseDataContext{{exec={exitCode=127}}}}, base=null)} ]}, status: failed]

Как вызвать Ansible через Rundeck с помощью Docker-контейнера?

1 Ответ

0 голосов
/ 17 января 2019

Стандартный образ Dode для Rundeck не содержит Ansible, вам нужно, чтобы Ansible сосуществовал в том же контейнере, что и Rundeck, у вас есть три варианта:

1) Создайте свой собственный контейнер с Rundeck и Ansible. 2) Если хотите, используйте это изображение, прекрасно работает: https://hub.docker.com/r/batix/rundeck-ansible/ 3) https://stackoverflow.com/a/47462089/10426011 (мне кажется, более сложным)

...