So erstellen Sie eine SSH-Verbindung zwischen Ansible- und Jenkins-Containern

So erstellen Sie eine SSH-Verbindung zwischen Ansible- und Jenkins-Containern

Ich bin neu bei Jenkins.

Mein Ziel ist die Schaffung einerJenkins-Job/Pipeline, die eine Gruppe von Ansible-Playbook-Dateien aktiviert- was zu einer umfangreichen Installation meines getesteten Produkts führt.

ich baue2 Behälterim Docker-Desktop (Windows):AnsibleUndJenkins.

Unten die Ansible docker-compose.yml-Datei:

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

Unten die Jenkins docker-compose.yml-Datei:

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 und Jenkins haben die gleiche Netzwerk-ID. pingDer Befehl funktioniert also vonAnsibleZuJenkinsund umgekehrt. Beide Container haben Zugang zum Internet.

Ich habe Benutzernamen und Passwort festgelegtAdministrator|Administratorund installierte die folgenden Plugins inJenkinsBehälter durchJenkins-Site > Jenkins verwalten > Plugins verwalten:

  • Ansible-Plugin
  • SSH
  • Veröffentlichen per SSH

Ich habe die SSH-Dienste auf beiden Maschinen überprüft.

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

Ich habe Connection refusedauch eine erhalten, wenn ich versuche, eine Verbindung zu den Maschinen selbst herzustellen

a) Was muss ich im Ansible-Container konfigurieren, damit SSH aktiv ist? b) Was muss ich im Jenkins-Container konfigurieren, damit SSH aktiv ist? c) Was muss ich in jedem Container konfigurieren, damit sie über SSH miteinander kommunizieren (dh(Port 22)?

verwandte Informationen