5

我正在使用 Molecule 来测试我的 ansible 角色。在重新启动我的服务器之前工作正常。然而,之后,当我跑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} 

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

4

2 回答 2

3

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

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

重启停止的实例

  1. 找到容器的相关名称docker ps -a
  2. 重启实例docker start <name>

从头开始

您可以简单地运行molecule destroy [-s scenarion_name]. 这将清理剩余的实例,之后您可以从头开始测试。

于 2019-11-29T13:57:17.407 回答
0

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

于 2021-03-04T23:54:01.633 回答