目的

通过CircleCI-2.0使用Ansible部署Docker容器。

方法

已使用CircleCI-2.0创建并添加了私钥。 UI。

.circle / config.yml

version: 2
jobs:
  build:
    docker:
      - image: ubuntu:xenial
    working_directory: ~/project


结果

在以下位置运行ansible结果:

Failed to connect to the host via ssh: Warning: Permanently added
Permission denied (publickey,password)


讨论

假定这些键将存储在〜/ .ssh中,但这似乎是空的。


您的目标主机是否接受此密钥(在手动尝试时)?


是。使用ssh root@host -i key登录成功。


您在容器中使用同一用户吗?


是。从CircleCI-2.0起,手动使用了root用户。

结论

总而言之,问题是CircleCI-2.0在哪里存储已提交的私钥使用UI? ~/.ssh目录为空。

#1 楼

我仍然不知道您的config.yml如何在没有步骤的情况下启动ansible。这是我的发现,但我不确定这是您的追求,但这对于发表评论太久了。

根据此处的文档,您必须添加带有用户界面中看到的密钥指纹的add_ssh_keys

- add_ssh_keys:
    fingerprints:
      - "48:a0:87:54:ca:75:32:12:c6:9e:a2:77:a4:7a:08:a4"