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 の管理 > プラグインの管理:

  • Ansibleプラグイン
  • パスワード
  • 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ですか?

関連情報