docker - 如何在Docker容器中运行Ansible脚本

标签 docker ansible

我正在使用docker测试我的剧本。

我现在在容器中的命令下运行时创建了一个容器,它给我以下错误

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

但是,如果我在主机上运行此命令运行良好,是否需要做任何事情以使连接不会在端口22上被拒绝?

请不要将下面的行视为错误原因,只是ansible在抛出错误之前执行了几行。实际上,它无法运行,因此,该变量的值为空。
fatal: [localhost] => One or more undefined variables: 'ansible_os_family' is undefined

最佳答案

在您的容器中,在本地启动您的剧本:

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

关于docker - 如何在Docker容器中运行Ansible脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35198355/

相关文章:

python-3.x - docker 构建 : Returned a non-zero code: 5

docker - 使用无根 docker 创建的绑定(bind)挂载在主机上有一个奇怪的 uid。如何删除这些文件夹?

docker - 容器因 : "httpd: Could not open configuration file/etc/httpd/conf/httpd.conf: No such file or directory", 停止,为什么?

proxy - 在 ansible 剧本中动态设置 HTTP_PROXY

ansible - 如何修复 ansible playbook 错误“(systemd) 模块不支持的参数 : enable Supported parameters?

Ansible 检查字典列表中是否存在键/值对

ansible - 如何在 Ansible 中创建相对符号链接(symbolic link)?

Ansible - 获取寄存器值的前几个字符

asp.net - Dotnet Core 从 Mac 发布到 IIS

docker - 可以修复状态为 "Exited (-1)"的容器吗?