GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04でNginxの背後にSSLを使用してJenkinsを構成する方法

Jenkinsは、ソフトウェア配信パイプライン全体(継続的配信)をセットアップするためのオープンソースのツール自動化ツールです。これにより、開発者は、ソフトウェアの確実な構築、テスト、展開など、ライフサイクル全体を通じてソフトウェア配信プロセスを管理および制御できます。

Jenkinsには、拡張可能で活気に満ちた活発なコミュニティがあります。 Javaで書かれています。通常、Jenkinsはスタンドアロンの組み込みJavaサーブレットアプリケーションとして実行されます。 ApacheTomcatやGlassFishなどのJavaサーブレットコンテナで実行することもできます。

このチュートリアルでは、Jenkinsを構成する方法を学びます。 Nginxの背後にあるSSL Ubuntu 20.04

前提条件

  • Ubuntu20.04サーバー
  • sudoプロビレッジを持つユーザー
  • 最小1GBのRAM
  • OracleJDK11以降がインストールされています。

ステップ1:UbuntuにJenkinsをインストールする

デフォルトのUbuntuリポジトリで利用可能なJenkinsパッケージは、最新バージョンよりも遅れている可能性があります。公式リポジトリにある計画されたメンテナンスパッケージからJenkinをインストールすることをお勧めします。

まず、リポジトリキーをシステムに追加します。

$ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

このガイドを作成するとき、手順はバージョン2.303.3をインストールします ジェンキンスの

次に、パッケージリポジトリをsources.listに追加しましょう。 ファイル:

$ sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

リポジトリのキャッシュを更新する必要があります

$ sudo apt update

これで、Jenkinsをインストールできます:

$ sudo apt install jenkins

次に、サービスを開始します

$ sudo systemctl start jenkins

サーバーから自動的に起動するようにサービスを構成しましょう

$ sudo systemctl enable jenkins

サービスの状況を確認できます

$ sudo systemctl status jenkins

ファイル/var/lib/jenkins/config.xmlを確認すると、バージョンを確認できます。

$ cat /var/lib/jenkins/config.xml
<?xml version='1.1' encoding='UTF-8'?> 
<hudson>   
      <disabledAdministrativeMonitors/>   
      <version>2.303.3</version>
...
...
</hudson>

ステップ2:SSL証明書を使用してNginxを構成する

Nginxを使用して通信をプロキシするため、最初にインストールする必要があります

$ sudo apt install nginx

次に、使用するフォルダーに証明書をコピーする必要があります。すでにSSL証明書を持っていると見なされます。

証明書をコピーします

$ sudo cp jenkins.domain.com.crt /etc/nginx/certs/jenkins.domain.com.crt

次に、キーをコピーします

$ sudo cp jenkins.domain.com.key /etc/nginx/certs/jenkins.domain.com.key

Nginxのデフォルト構成との競合を回避するために、sites-enabledからデフォルト構成を削除します ディレクトリ

sudo rm /etc/nginx/sites-enabled/default

それでは、Jenkinsの構成ファイルを作成しましょう。 Jenkinsは通常ポート8080を使用して実行しますが、Nginxを使用しているため、ポート80と443でリッスンし、ドメイン名情報を使用して、Jenkinsのポート8080で内部的に通信をプロキシします。

設定する構成により、すべてのHTTPリクエストがHTTPSに自動的に強制されます

$ sudo vim /etc/nginx/sites-available/jenkins.conf
upstream jenkins.domain.com {
       server SERVER_IP:8080;
}
server {
        server_name jenkins.domain.com;
        listen 80 ;
        access_log /var/log/nginx/jenkins.log;
        return 301 https://$host$request_uri;
}
server {
        server_name jenkins.domain.com;
        listen 443 ssl http2 ;
        access_log /var/log/nginx/jenkins.log;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_prefer_server_ciphers on;
        ssl_session_timeout 5m;
        ssl_session_cache shared:SSL:50m;
        ssl_session_tickets off;
        ssl_certificate /etc/nginx/certs/jenkins.domain.com.crt;
        ssl_certificate_key /etc/nginx/certs/jenkins.domain.com.key;
        add_header Strict-Transport-Security "max-age=31536000";
        location / {
                proxy_pass http://jenkins.domain.com;
        }
}

Jenkins Nginx構成に加えて、必要なnginx派生物のいくつかを追加しました。 Webサーバーの要件に応じて使用および最適化できます。

次に、構成ファイルのシンボリックを作成して有効にします

$ sudo ln -s /etc/nginx/sites-available/jenkins.conf /etc/nginx/sites-enabled/jenkins.conf

Nginxサービスを開始します

$ sudo systemctl start nginx

次に、起動時に有効にします

$ sudo systemctl enable nginx

これで、Nginx構成をテストできます

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

次に、Nginxサービスを再起動して、構成を考慮します

$ sudo systemctl restart nginx

次に、ファイアウォールのポート80と443を開きます。

$ sudo ufw allow 80,443/tcp

また、UFWを有効にする前に必ずsshポートを開いてください。そうしないと、問題が発生した場合にssh接続が失われる可能性があります

$ sudo ufw allow 'OpenSSH'

まだ有効になっていない場合はUFWを有効にします

$ sudo ufw enable

ステップ3:Jenkinsにアクセスして構成する

URL http://jenkins.domain.comでブラウザを開くと、Jenkinsのページでパスワードの入力を求められます

パスワードを取得するには、示されたファイルの内容を表示する必要があります

$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
88ba484d8cff4150a90683a07c89ea7c

次に、パスワードを貼り付けて、次のページに進みます。これで、デフォルトのプラグインをインストールするか、インストールするプラグインを選択するかを尋ねるページが表示されます。この場合、デフォルトのものを残します

次に、インストールプロセスが表示されます

次に、管理者ユーザーを作成する必要があります。

次に、JenkinsのURLを検証します。

これで、Jenkinsの使用を開始できます

結論

このチュートリアルでは、Ubuntu20.04でNginxの背後にSSLを使用してJenkinsを構成する方法を学習しました。 CI/CDプロセスのジョブとパイプラインの構成を開始できます。


Ubuntu
  1. NginxでオリジンCloudflareSSLを設定する方法

  2. Ubuntu14.04にNginxでElggをインストールする方法

  3. SSL を使用して Ubuntu 22.04 に Elasticsearch をインストールする方法

  1. Ubuntu18.04にJenkinsをインストールする方法

  2. Ubuntu20.04にNginxをインストールして構成する方法

  3. Ubuntu18.04にNginxでJoomlaをインストールする方法

  1. Ubuntu16.04にNginxをインストールする方法

  2. Ubuntu18.04でApacheを使用してNextcloudをインストールおよび構成する方法

  3. Ubuntu20.04でLetsEncryptを使用してNginxを保護する