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プロセスのジョブとパイプラインの構成を開始できます。