我是詹金斯的新手。
我的目标是创建一个Jenkins job\pipeline 将激活一组 ansible 的 playbook 文件- 这将创建我所测试产品的长期安装。
我建立2 个容器在 Docker 桌面(Windows)中:Ansible和詹金斯。
以下是 Ansible docker-compose.yml 文件:
version: '2'
services:
ansible:
container_name: ansible
hostname: ansible
image: ansible
volumes:
- ~/product/ansible:/ansible
working_dir: /ansible
build:
context: .
dockerfile: Dockerfile
dns:
- 200.20.0.20
networks:
- network
networks:
network:
external: true
以下是 Jenkins docker-compose.yml 文件:
version: '3.7'
services:
jenkins:
container_name: jenkins
image: jenkins/jenkins:lts
privileged: true
user: root
ports:
- 8080:8080
- 50000:50000
container_name: jenkins
volumes:
- ~/r10_core/jenkins:/jenkins
networks:
- network
networks:
network:
external: true
Ansible 和 Jenkins 使用相同的网络 ID。因此,ping
命令正在从Ansible到詹金斯反之亦然。两个容器都可以访问互联网。
我设置了用户名和密码行政|行政并安装了以下插件詹金斯容器通过Jenkins 站点 > 管理 Jenkins > 管理插件:
- Ansible 插件
- SSH
- 通过 SSH 发布
我检查了两台机器上的 SSH 服务。
Ansible:
[root@ansible ansible]# ssh 172.20.0.2
ssh: connect to host 172.20.0.2 port 22: Connection refused
[root@ansible ansible]# service --status-all
bash: service: command not found
[root@ansible ansible]# systemd
bash: systemd: command not found
[root@ansible ansible]# systemctl
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
[root@ansible ansible]#
詹金斯:
root@jenkins:/# ssh 172.20.0.3
ssh: connect to host 172.20.0.3 port 22: Connection refused
root@jenkins:/# service --status-all
[ ? ] hwclock.sh
root@jenkins:/#
Connection refused
当我尝试连接到机器本身时,我也遇到了
a) 我应该在 Ansible 容器中配置什么才能使 SSH 处于活动状态?b) 我应该在 Jenkins 容器中配置什么才能使 SSH 处于活动状态?c) 我应该在每个容器中配置什么才能使它们通过 SSH 相互通信(IE端口 22)?