繰り返しの作業は通常退屈で、多くの時間とエネルギーを消費することになります。時間の経過とともに、反復的なジョブを実行する煩わしさを軽減するのに役立つ複数の自動化ツールが開発されてきました。そのような自動化ツールの1つがJenkinsです。 Jenkinsは、ソフトウェア開発者がアプリケーションを構築、テスト、デプロイし、それによって継続的インテグレーションとデリバリープロセスを合理化するのに役立つように設計されたオープンソースの自動化サーバーです。
以前、CentOS 8 / RHEL 8にJenkinsをインストールする方法についての記事を書きました。この記事では、少し異なることを行い、Jenkinsコンテナーをdockerを使用したsystemdサービスとして実行します。
前提条件
続行する前に、いくつかのことが必要です。
- LinuxシステムにDockerがインストールされています。
- sudo権限を持つ通常のユーザー。
ステップ1)DockerEngineをインストールします
まず、Dockerエンジンをシステムにインストールする必要があります。 CentOS 8 / RHEL 8にDockerをインストールする方法についての詳細な記事があります。以下のdockerコマンドを実行して、dockerのバージョンを表示します
$ sudo docker version
上記のスニペットから、dockerがインストールされており、dockerバージョン19.03.13を実行していることを確認しました。
ステップ2)Jenkinsユーザーを作成します
次に、Jenkinsサービスを管理する「Jenkins」システムユーザーを作成します。ただし、最初に、Jenkinsのシステムグループを作成します。
$ sudo groupadd --system jenkins
次に、Jenkinsシステムユーザーを作成します
$ sudo useradd -s /sbin/nologin --system -g jenkins jenkins
最後に、次のようにJenkinsユーザーをdockerグループに追加します。
$ sudo usermod -aG docker jenkins
Jenkinsユーザーがdockerグループに追加されていることを確認するには、次のようにidコマンドを実行します
$ id jenkins
出力は、
になります[[email protected] ~]$ id jenkins uid=991(jenkins) gid=986(jenkins) groups=986(jenkins),989(docker) [[email protected] ~]$
素晴らしい!先に進んで、Jenkinsの画像をプルしましょう。
ステップ3)DockerハブからJenkinsイメージをプルする
次のコマンドを呼び出して、Dockerハブから最新のJenkinsイメージをプルします。
$ sudo docker pull jenkins/jenkins:lts
これは通常、かなり安定したインターネット接続で数秒かかります。ダウンロードしたら、次のコマンドを呼び出して、Jenkinsイメージが存在することを確認します。
$ sudo docker images | grep jenkins
上記のコマンドの出力は次のようになります:
[[email protected] ~]$ sudo docker images | grep jenkins jenkins/jenkins lts f669140ba6ec 6 days ago 711MB [[email protected] ~]$
Jenkinsは、データを保存し、コンテナがクラッシュした場合でも再利用するために永続ストレージを必要とします。したがって、図のようにストレージディレクトリを作成します。
$ sudo mkdir /var/jenkins $ sudo chown -R 1000:1000 /var/jenkins
ステップ4)Jenkinsのsystemdサービスを作成する
好みのテキストエディタを使用して、次のようにJenkinssystemdファイルを作成します。
$ sudo vi /etc/systemd/system/jenkins-docker.service
次の内容を貼り付けてファイルを保存します。
[Unit] Description=Jenkins Server Documentation=https://jenkins.io/doc/ After=docker.service Requires=docker.service [Service] Type=simple User=jenkins Group=jenkins TimeoutStartSec=0 Restart=on-failure RestartSec=30s ExecStartPre=-/usr/bin/docker kill jenkins-server ExecStartPre=-/usr/bin/docker rm jenkins-server ExecStartPre=/usr/bin/docker pull jenkins/jenkins:lts ExecStart=/usr/bin/docker run --name jenkins-server --publish 8080:8080 --publish 50000:50000 --volume /var/jenkins:/var/jenkins_home jenkins/jenkins:lts SyslogIdentifier=jenkins ExecStop=/usr/bin/docker stop jenkins-server [Install] WantedBy=multi-user.target
Jenkinsサービスを開始するには、最初にsystemdをリロードしてから、Jenkinsを起動します。
$ sudo systemctl daemon-reload $ sudo systemctl start jenkins-docker
Jenkinsが実行されているかどうかを確認しましょう。そのために、以下を実行します:
$ sudo systemctl status jenkins-docker
素晴らしい ! Jenkinsはsystemdサービスとして稼働しています。 Jenkinsはポート8080で実行されるため、次のようにファイアウォールのポートを開きます。
$ sudo firewall-cmd --permanent --add-port=8080/tcp $ sudo firewall-cmd --reload
Jenkinsを設定するには、図のようにサーバーのURLを参照するだけです
http:// server-ip:8080
図のように「UnlockJenkins」ページが表示されます。続行するには、表示されているファイルにあるパスワードを入力する必要があります
[[email protected] ~]$ cat /var/jenkins/secrets/initialAdminPassword 9c61bd823a404056bf0a408f4622aafc [[email protected] ~]$
完了したら、[続行]をクリックします
次に、図のように[推奨プラグインをインストールする]オプションを選択します。
その後、Jenkinsアカウントの管理ユーザーを作成し、[保存して続行]をクリックします
インストーラーは、残りの手順を最後までガイドします。インストールが正常に完了すると、次のJenkinsダッシュボードが表示されます
そして、それはラップです。このガイドでは、dockerコンテナ内でJenkinsをsystemdサービスとして実行する方法を学びました。
また読む :Ubuntu20.04にJenkinsをインストールして構成する方法