使用 Systemd 和 Docker 安装和运行 Jenkins

[ad_1]

当您使用 docker 下载和配置 Jenkins 时,您必须使用手动命令来管理进程。 它变得非常不安全和复杂。 因此,我们将使用 systemd 对其进行管理。 实际上,它是 Linux 操作系统的系统和服务管理器。 它具有按需启动、启用、重新启动和停止守护进程、日志记录等功能。

在本文中,我将从 docker hub 存储库下载 Jenkins 包并使用 systemd 管理器对其进行管理。 我用过 Ubuntu Linux,但你可以在支持 systemd 的 centos、Debian、Redhat 等中使用。

先决条件

  1. 安装了最新版本的 docker
  2. 用于下载 Jenkins 映像的 Internet 连接

配置

要运行一个进程,我们需要用户。 因此,我们创建一个系统组,将一个系统用户添加到该组。 由于您不需要登录,我们不提供登录 shell。 我在这里给出了“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 镜像并运行容器。 它还将映射主机服务器中的端口 8080 和 50000,这是访问 jenkins 服务所需要的。 正如下面 Unit 部分所定义的,它需要 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 管理器的“启用”功能启动服务。

$ sudo systemctl enable docker-jenkins

另外,通过重新启动服务进行检查。

$ sudo systemctl restart docker-jenkins

詹金斯设置

要设置jenkins首先访问https://yourserverip:8080 然后你需要输入初始 admin 密码,在以下路径中设置。 复制输出并将其粘贴到“管理员密码”中。 然后点击继续。

$ cat /data/jenkins/secrets/initialAdminPassword

您可以安装所需的插件并继续。

结论

在本文中,您学习了如何使用 docker 安装最新版本的 Jenkins 并配置服务以使用它。 使用 systemd 管理 Jenkins 使工作更简单。 感谢您的阅读。

[ad_2]

Related Posts