2016-02-04 3 views
0

Я использую докер для тестирования своих плейбуков.Как запустить скрипт в контейнере докеров

Я создал контейнер теперь, когда я бегаю ниже команды внутри контейнера его давая мне ниже ошибки

анзибль-PlayBook jenkins.yml

Ошибка: -

[[email protected] jenkins-playbook]# ansible-playbook jenkins.yml -k -vvv 
SSH password: 

PLAY [localhost] ************************************************************** 

GATHERING FACTS *************************************************************** 
<localhost> ESTABLISH CONNECTION FOR USER: root 
<localhost> REMOTE_MODULE setup 
<localhost> EXEC sshpass -d4 ssh -C -tt -v -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/root/.ansible/cp/ansible-ssh-%h-%p-%r" -o StrictHostKeyChecking=no -o GSSAPIAuthentication=no -o PubkeyAuthentication=no -o ConnectTimeout=10 localhost /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1454580537.38-114451000565344 && echo $HOME/.ansible/tmp/ansible-tmp-1454580537.38-114451000565344' 
EXEC previous known host file not found for localhost 
fatal: [localhost] => SSH Error: ssh: connect to host localhost port 22: Connection refused 
    while connecting to 127.0.0.1:22 
It is sometimes useful to re-run the command using -vvvv, which prints SSH debug output to help diagnose the issue. 

TASK: [jenkins | Include OS-Specific variables] ******************************* 
<localhost> ESTABLISH CONNECTION FOR USER: root 
fatal: [localhost] => One or more undefined variables: 'ansible_os_family' is undefined 

FATAL: all hosts have already failed -- aborting 

PLAY RECAP ******************************************************************** 
      to retry, use: --limit @/root/jenkins.retry 

localhost     : ok=0 changed=0 unreachable=2 failed=0 

Но если я запустил эту команду на хост-компьютере, ее работа прекрасна. Мне нужно что-либо сделать, чтобы соединение не получило отказ в порту 22.inside docker container

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

fatal: [localhost] => One or more undefined variables: 'ansible_os_family' is undefined 

ответ

3

В контейнере начать свой сборник пьес локально:

$ ansible-playbook jenkins.yml -c local -k -vvv 
0

У вас есть connection=local, определенный для localhost? Он пытается подключиться через ssh, который не может работать, потому что у вас, вероятно, не работает sshd в вашем контейнере.

+0

Да вот действительный пункт, но его начали работать, когда я удалил Localhost из и т.д./файл/анзибль/хостов. Почему так? – thinkingmonster

+0

Не могу сказать. Что там было определено? В моем файле хостов по умолчанию есть только несколько примеров, но не localhost. – udondan

Смежные вопросы