免责声明:这可能是一个菜鸟问题。如果是这样,我深表歉意,这根本不是我的目标。
我真的是Ansible的新手,但是即使Ansible尚未(不是)这个问题,我的配置还是有问题。 TL; DR:我别无选择,只能根据自己的情况使用Windows。
但是,我能够使用Docker。我编写了以下Dockerfile使其可以运行:
FROM php:7.3.1-apache-stretch
RUN apt-get update && apt-get install -y python3 python3-pip git nano
RUN pip3 install ansible
RUN mkdir /home/devops
WORKDIR /home/devops
然后我编写了以下docker-compose.yml文件,使其具有Ansible专用服务器和“从属”。
version: '3.5'
services:
ansible:
build: .
ports:
- "80:80"
slave:
build: .
ports:
- "81:80"
- "22:22"
在this tutorial之后(法文),他们说我需要使用SSH从“ Ansible”服务器登录到从属服务器。但是,即使将我的id_rsa.pub
文件放入“从站”文件中,我也无法连接到它。基本上,它将返回以下内容:
连接到主机172.19.0.2端口22:连接被拒绝
172.19.0.2是我运行ifconfig
时显示给我的端口。
所以我真的不知道我应该在这里做什么。在问到这里之前,我已经在线查看了一些有关Docker的ssh问题的链接,但是我不知道我的问题是否与此有关。
是否有一种简单的方法?还是我做错了什么?
提前谢谢
答案 0 :(得分:2)
您正在设计的架构与Ansible或Docker的工作方式根本不匹配。
Ansible没有客户端/服务器体系结构:您不需要安装“主Ansible服务器”容器,只需要某种方法即可连接到要使用ssh管理的主机。
Docker容器很少运行ssh守护程序。它们通常是单个服务器的包装。容器可以运行,例如,Apache服务器,而绝对不能运行。这使他们难以使用Ansible进行管理。
我建议直接在主机上安装Ansible,可能打包在Python虚拟环境中。 (这解决了与容器共享ssh密钥等凭据的棘手问题,这意味着您仅需要root权限即可运行该工具。)对于管理Docker容器,建议阅读the docker build
system to build custom Docker images;这通常需要使用Dockerfile
的六行来安装服务并告诉Docker如何启动它。
答案 1 :(得分:1)
您有开放的ssh服务器吗?
sudo apt-get update
sudo apt-get install openssh-server
sudo ufw allow 22
可笑
- 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
答案 2 :(得分:1)
我终于做到了!
您可以使用docker-compose的链接。 Aaa,您需要安装openssh-server并将其打开。
所以
您的Dockerfile应该像
FROM php:7.3.1-apache-stretch
RUN apt-get update && apt-get install -y python3 python3-pip git nano openssh-server
RUN pip3 install ansible
RUN mkdir /home/devops
RUN service ssh start
WORKDIR /home/devops
和您的docker-compose应该像这样:
version: '3.5'
services:
ansible:
build: .
links:
- slave:slave
ports:
- "80:80"
slave:
build: .
ports:
- "81:80"
- "22:22"
因此,您只需要将id-rsa挂载在ansible中并将id-rsa.pub挂载在slave中。
version: '3.5'
services:
ansible:
build: .
links:
- slave:slave
volumes:
- /path/to/your/id-rsa:/home/root/.ssh/id-rsa
ports:
- "80:80"
slave:
build: .
volumes:
- /path/to/your/id-rsa.pub:/home/root/.ssh/id-rsa.pub
ports:
- "81:80"
- "22:22"
希望有帮助。