免责声明:这可能是一个noob问题。如果是这样,我大肆宣传,这根本不是我的目标。
我是Ansible的新手,但即使Ansible不是(问题),我也有问题……
您正在设计的架构与Ansible或Docker的工作方式并不完全匹配。
Ansible没有客户端/服务器架构:您不需要安装“主Ansible服务器”容器,只需要一些方法连接到您尝试使用ssh管理的主机。
Docker容器很少运行ssh守护进程。它们通常包含一些单一服务器。例如,一个容器可能会运行Apache服务器而绝对没有其他任何东西。这使得使用Ansible很难管理它们。
我建议直接在你的主机上安装Ansible,可能打包在Python虚拟环境中。 (这解决了与容器共享ssh密钥等凭据的棘手问题,这意味着您只需运行该工具就不需要root权限。)为了管理Docker容器,我建议您阅读 该 docker build 系统构建自定义Docker镜像 ;这通常涉及六行 Dockerfile 安装服务并告诉Docker如何启动它。
docker build
Dockerfile
你有开放的ssh服务器吗?
sudo apt-get update sudo apt-get install openssh-server sudo ufw allow 22
对于ansible
- name: 2.Install Open ssh apt: name=openssh-server - name: 8.Update firewall become: true command: ufw allow from any to any port 22 proto tcp