Ansible과 Jenkins 컨테이너 간에 SSH 연결을 생성하는 방법

Ansible과 Jenkins 컨테이너 간에 SSH 연결을 생성하는 방법

저는 Jenkins를 처음 사용합니다.

내 목표는Ansible의 플레이북 파일 그룹을 활성화할 Jenkins 작업\파이프라인- 테스트한 제품을 오랫동안 설치하게 됩니다.

나는 짓는다컨테이너 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 관리 > 플러그인 관리:

  • 앤서블 플러그인
  • 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) SSH를 활성화하려면 Ansible 컨테이너에서 무엇을 구성해야 합니까? b) SSH를 활성화하려면 Jenkins 컨테이너에서 무엇을 구성해야 합니까? c) SSH를 통해 서로 통신하려면 각 컨테이너에서 무엇을 구성해야 합니까?(포트 22)?

관련 정보