저는 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)?