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

SystemdとDockerを使用してJenkinsをインストールして実行する

dockerを使用してJenkinsをダウンロードして構成する場合は、手動コマンドを使用してプロセスを管理する必要があります。それは非常に危険で複雑になります。そこで、systemdを使用して管理します。実際には、Linuxオペレーティングシステムのシステムおよびサービスマネージャーです。デーモン、ロギングなどのオンデマンドの開始、有効化、再起動、停止を特徴としています。

この記事では、Docker HubリポジトリからJenkinsパッケージをダウンロードし、systemdmanagerを使用して管理します。私はUbuntuLinuxを使用しましたが、systemdをサポートするcentos、Debian、Redhatなどで使用できます。

前提条件

  1. インストールされているDockerの最新バージョン
  2. Jenkinsイメージをダウンロードするためのインターネット接続

構成

プロセスを実行するには、ユーザーが必要です。そこで、システムグループを作成し、システムユーザーをグループに追加します。ログインする必要がないため、ログインシェルは提供していません。ここでは「devops」という名前を付けました。お好きな名前を付けることができます。

$ sudo groupadd --system devops
$ sudo useradd -s /sbin/nologin --system -g devops devops

Dockerのインストール中に、ユーザーdockerがデフォルトで追加されました。したがって、Docker内でプロセスを実行するには、「devops」ユーザーと現在のログインユーザーをDockerグループに追加しましょう。

$ sudo usermod -aG docker devops
$ sudo usermod -aG docker $USER

コンテナボリュームをホストにマップするためのディレクトリが必要です。それでは、ディレクトリを作成して、そのディレクトリの現在のユーザー所有権を与えましょう。

$ sudo mkdir -p /data/jenkins
$ chown -R $USER:$USER /data/jenkins

次のコマンドを使用して、ユーザー「devops」を確認できるようになりました。出力は次のようになっている必要があります。

$ id devops

次に、サービスを作成します。サービスファイルは/etc/ systemd / system /内に保存されるため、以下に示すように.serviceで終わるファイルを作成します。

$ vim /etc/systemd/system/docker-jenkins.service

ファイルに次のコンテンツを追加します。次の構成では、サービス名docker-jenkinsが作成されます。 Docker Hubから最新バージョンのjenkinsイメージをプルし、コンテナーを実行するだけです。また、jenkinsサービスにアクセスするために必要なホストサーバーのポート8080と50000をマップします。以下の「ユニット」セクションで定義されているように、docker.serviceを正常に実行する必要があります。ユーザーが異なる場合は、それに応じてマウントポイントが変更されます。

[Unit]

Description=My Jenkins Server

Documentation=https://jenkins.io/doc/

After=docker.service

Requires=docker.service

[Service]

Type=simple

User=devops

Group=devops

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

ExecStart=/usr/bin/docker run \

--name jenkins-server \

--publish 8080:8080 \

--publish 50000:50000 \

--volume /data/jenkins:/var/jenkins_home \

jenkins/jenkins

SyslogIdentifier=jenkin

ExecStop=/usr/bin/docker stop jenkins-server

[Install]

WantedBy=multi-user.target

次のコマンドを使用して、systemdデーモンにサービスファイルをリロードします。

$ sudo systemctl daemon-reload

以下のコマンドを使用してDockerサービスを開始します。

$ sudo systemctl start docker-jenkins

Systemdは、syslogでデフォルトのロギングサービスも提供します。次の場所でログを確認できます。

$ sudo tail -f /var/log/syslog

これで、systemd managerの「有効化」機能を使用して、サーバーの再起動後にサービスを開始できます。

$ sudo systemctl enable docker-jenkins

また、サービスを再起動して確認してください。

$ sudo systemctl restart docker-jenkins

Jenkinsのセットアップ

jenkinsを設定するには、最初にhttp:// yourserverip:8080にアクセスします。次に、次のパスで設定されている初期管理者パスワードを入力する必要があります。出力をコピーして、「管理者パスワード」に貼り付けます。次に、[続行]をクリックします。

$ cat /data/jenkins/secrets/initialAdminPassword

必要なプラグインをインストールして続行できます。

結論

この記事では、Dockerを使用して最新バージョンのJenkinsをインストールし、それを使用するようにサービスを構成する方法を学習しました。 systemdでJenkinsを管理すると、作業が簡単になります。読んでいただきありがとうございます。


Ubuntu
  1. Dockerを使用してOpenVPNサーバーをインストールしてホストする方法

  2. Dockerを使用してJenkinsをインストールする方法

  3. Ubuntu20.04にVagrantをインストールして実行する

  1. DockerでRedisをデプロイして実行する方法

  2. UbuntuでDockerをインストールしてDockerコンテナを実行する方法

  3. root アクセスで実行するように Systemd サービスを構成する

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

  2. Dockerを使用してJenkinsコンテナをSystemdサービスとして実行する方法

  3. PodmanでSystemdサービスとしてコンテナを実行する方法