首页 > 解决方案 > 使用 docker as ansible 时没有模块命名异常

问题描述

我正在尝试在 docker 容器中测试 ansible,我已将一个 docker 容器分配为“ansible-controller”,其余两个作为目标节点。我正在使用启用 ssh 的 ubuntu docker 映像来生成 docker 容器。下面是dockerfile:-

    FROM ubuntu:16.04

    RUN apt-get update && apt-get install -y openssh-server
    RUN mkdir /var/run/sshd
    RUN echo 'root:Passw0rd' | chpasswd
    RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

    RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
    ENV NOTVISIBLE "in users profile"

    RUN echo "export VISIBLE=now" >> /etc/profile
    EXPOSE 22

    CMD ["/usr/sbin/sshd", "-D"]*

我还在控制器容器中安装了“sshpass”和“ansible”包,但是当我尝试将 ansible 模块“ping”到目标时,我面临以下问题:-

target1 | FAILED! => {
    "changed": false,
    "failed": true,
    "module_stderr": "",
    "module_stdout": "Traceback (most recent call last):\r\n  File \"/root/.ansi
ble/tmp/ansible-tmp-1586534281.47-159197676145489/ping\", line 44, in <module>\r
\n    import exceptions\r\nImportError: No module named 'exceptions'\r\n",
    "msg": "MODULE FAILURE",
    "parsed": false
}

以下是我的库存文件:-

target1 ansible_host=172.17.0.3 ansible_ssh_pass=Passw0rd ansible_python_interpreter=/usr/bin/python3.5

我无法解决此问题,因此请求您的帮助。提前致谢

标签: dockeransible

解决方案


我的坏..目标机器没有安装python。


推荐阅读