如何在 Ansible 和 Jenkins 容器之間建立 SSH 連接

如何在 Ansible 和 Jenkins 容器之間建立 SSH 連接

我是詹金斯的新手。

我的目標是創建一個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)?

相關內容