Điểm:0

How to create a SSH connection between Ansible and Jenkins containers

lá cờ uz

I'm new to Jenkins.

My goal is to create a Jenkins job\pipeline that will activate a group of ansible's playbook files - which will create a long installation of my tested product.

I build 2 containers in Docker desktop (Windows): Ansible and Jenkins.

Below Ansible docker-compose.yml file:

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

Below Jenkins docker-compose.yml file:

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 and Jenkins are on the same Network Id. So, ping command is working from Ansible to Jenkins and vis versa. Both containers have access to Internet.

I set username and password admin | admin and installed the following plugins in Jenkins container through Jenkins site > Manage Jenkins > Manage Plugins:

  • Ansible plugin
  • SSH
  • Publish by SSH

I checked the SSH services in both machines.

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]#

Jenkins:

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:/#

I got a Connection refused also when trying to connect to the machines themselves

a) What should I configure in the Ansible container in order SSH to be active? b) What should I configure in the Jenkins container in order SSH to be active? c) What should I configure in each container in order them talk each other through SSH (i.e port 22)?

RVT avatar
lá cờ it
RVT
Tôi nghĩ rằng câu hỏi này nên được diễn đạt lại. Không rõ bạn đang thực sự * cố gắng làm gì * ở đây. "Vùng chứa riêng biệt" là **một** vấn đề, trong khi việc tạo hoặc tự động tạo lệnh `ansible-playbook` hoặc `ansible` lại rất khác. (TLDR; Công việc cũng có thể giao tiếp nội bộ ở một mức độ nào đó - nhiều hơn với "một chút trí tưởng tượng")
lá cờ uz
@RVT cảm ơn bạn đã phản hồi. Tôi tập trung câu hỏi vào một vấn đề - Kết nối SSH giữa các thùng chứa Ansible và Jenkins
lá cờ in
Bạn đã hiểu sai khái niệm về container. Những gì bạn muốn là máy ảo.
lá cờ uz
@GeraldSchneider Nguyên tắc trong các vùng chứa là mỗi vùng chứa chỉ thực hiện một dịch vụ và theo cách tốt. Tôi muốn dịch vụ Jenkins sử dụng dịch vụ Ansible. Có thể không? Nếu vậy, bạn có thể chỉ ra điều này để phản hồi lại bài đăng, nếu không - vui lòng làm rõ quan điểm của bạn về lý do tại sao không thể đưa ra định nghĩa như vậy. Cảm ơn.
RVT avatar
lá cờ it
RVT
@Hiddai... không có thứ gọi là "bộ chứa Jenkins", trừ khi bạn đang nói về các bộ chứa do Jenkins quản lý, dưới Docker hoặc nhà cung cấp bộ chứa khác. Kết nối SSH giữa máy chủ này và máy chủ khác là một vấn đề khá dễ hiểu (gợi ý: xem khóa ssh-agent và ssh)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.