我是詹金斯的新手。
我的目標是創建一個Jenkins job\pipeline 將啟動一組 ansible 的 playbook 文件- 這將創建我的測試產品的長時間安裝。
我建立2個貨櫃在 Docker 桌面 (Windows) 中:安西布爾和詹金斯。
以下 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
命令是從安西布爾到詹金斯反之亦然。兩個容器都可以使用互聯網。
我設定了用戶名和密碼行政|行政並安裝了以下插件詹金斯容器透過Jenkins 網站 > 管理 Jenkins > 管理插件:
- Ansible插件
- SSH
- 透過 SSH 發布
我檢查了兩台機器上的 SSH 服務。
安西布爾:
[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)?