2016-11-07 121 views
2

我正在创建一个CI流水线和Vagrant,Ansible和Docker开发环境。我的目标是通过单个命令自动完成一切,而不需要手动配置。用单个ansible-playbook命令我应该有全功能的连续部署管道,所有的服务dockerized。泊坞窗詹金斯容器,主机密钥验证失败

现在是这个问题。当我运行官方詹金斯泊坞窗容器中,并试图为git的配置验证,我得到以下错误

host key verification failed

我明白我可以登录到詹金斯容器,SSH手动Git和接受主机密钥为可信,当第一次登录时。但这是绝对不允许的,连接也应该自动处理。

如何配置Jenkins docker容器在创建时信任git服务器,何时可用的工具是docker,ansible和vagrant?

+0

你是否已经通过生成** ssh密钥对**在jenkins容器内设置了任何ssh认证方法?如果是这样的话,jenkins容器可以自动连接git服务器而不需要交互密码。除了主机密钥验证只是客户端验证问题的一个问题,可以通过将git服务器的主机密钥添加到jenkins用户的** known_hosts **文件中来消除。 – Kadir

回答

0

您可以使用Ansible's known_hosts模块来解决此问题。

该模块将主机密钥添加到服务器的~/.ssh/known_hosts文件中,类似于您作为手动步骤描述的内容。

请注意模块的限制,以及:

如果你有一个非常大的数量的主机密钥的管理,你会发现template模块更有用。

+1

因为码头集装箱的目标是完整和独立,所以配置运行码头集装箱时会感到自相矛盾。是否可以在启动容器时提供密钥,无论是使用纯码头命令还是使用docker_container模块? –