为什么Molecule无法启动Docker容器

时间:2019-11-29 13:40:45

标签: docker unit-testing testing ansible molecule

我正在使用分子来测试我的角色。在重新启动服务器之前,我的服务器工作正常。但是,之后,当我运行molecule create

它正在跳过创建过程:正在跳过,已创建实例。 但是,什么都没有运行:

(myenv)[root]# docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

运行molecule converge时。我收到此错误:

TASK [Gathering Facts] *********************************************************

fatal: [test_instance]: UNREACHABLE! => {"changed": false, "msg": "Authentication or permission failure.
In some cases, you may have been able to authenticate and did not have permissions on the target directory. 

Consider changing the remote tmp path in ansible.cfg to a path rooted in \"/tmp\". Failed command was: 
( umask 77 && mkdir -p \"` echo ~/.ansible/tmp/ansible-tmp-1575033184.79-237504774558686 `\" && echo
ansible-tmp-1575033184.79-237504774558686=\"` echo ~/.ansible/tmp/ansible-tmp-1575033184.79-237504774558686 `\" ), 
exited with result 1", "unreachable": true} 

关于如何解决此问题的任何想法?

2 个答案:

答案 0 :(得分:1)

您的分子实例是在docker中创建的,但是在您重新启动时它们已停止,并且不会自动重新启动。分子将其视为已创建,但由于未运行而无法访问它们。

您有2种解决方案来解决此问题。

重新启动已停止的实例

  1. 使用docker ps -a查找容器的相关名称
  2. 使用docker start <name>重新启动实例

从头开始

您只需运行molecule destroy [-s scenarion_name]。这将清除剩余的实例,之后您可以从头开始测试。

答案 1 :(得分:0)

@Zeitounator 是的,我将问题与试图在我的平台定义中运行 /lib/systemd/systemd 隔离开来,该定义与具有相同图像的先前版本的 docker 一起使用,但显然现在会立即退出。我删除了特定的命令,它在默认的 bash 睡眠循环中工作正常。现在的问题是为什么 docker 无法从 systemd 开始。它存在于系统中,我定义了用于挂载的公共卷和 tmpfs。然而,systemd 不高兴。 :)