如何在docker集装箱内运行可靠的脚本

我正在使用docker来testing我的playbooks。

我现在创build了一个容器,当我在容器内运行下面的命令给我下面的错误

ansible-playbook jenkins.yml

错误:-

[root@db1e9105692d 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 

但是,如果我在主机上运行这个命令它运行fine.Do我需要做任何事情,这样的连接不会被拒绝在端口22.insidedocker集装箱

请不要把下面的行看作错误的原因,只是在抛出错误之前已经执行了更多的行。 其实它不能运行,所以为什么这个variables的值是空的。

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

在您的容器中在本地启动您的手册:

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

你有连接=本地定义本地主机? 它试图通过ssh连接,因为你可能没有在你的容器中运行sshd,所以无法工作。