如何安装 Jenkins Ubuntu slave 作为服务?

Sha*_*boz 6 linux jenkins

我有一台 Ubuntu 16.04 LTS 机器,我通过 JNLP 连接成功连接到 Jenkins 服务器。我为连接采取的步骤如下:

  1. 在从属设备中创建一个名为 /home/MyUbuntu/Jenkins 的目录
  2. 将 agent.jar 和 slave-agent.jnlp 文件下载到目录中
  3. 从终端运行此命令:

java -jar agent.jar -jnlpUrl http://my-jenkins-server:8080/computer/MyNode/slave-agent.jnlp -secret 6f8bb3250d6dbcda77979797997b0ea6bcaaa064785d558c0e3home /MyNode/slave-agent.jnlp -secret

连接成功。

问题: 一旦我关闭终端,连接就会断开。

问题: 如何在 Ubuntu 16.04 LTS 中将此添加为服务,以便每当机器重新启动时,它都会作为启动启动???

小智 2

如果您使用 System D,请将这样的文件添加到/etc/systemd/system/.

[Unit]
Description=Jenkins slave connection
Wants=network.target
After=network.target

[Service]
ExecStart=java -jar agent.jar -jnlpUrl http://jenkinsurl:port/endpoint.jnlp -secret 4lph4num3r1cs3cr3t -workDir "/base/path/of/your/jenkinsjar"
Restart=always
WorkingDirectory=/base/path/of/your/jenkinsjar
User=my-user
Group=my-group
RestartSec=20s


[Install]
WantedBy=multi-user.target
Alias=jenkins.service
Run Code Online (Sandbox Code Playgroud)

文件的权限和所有权可能因服务或操作系统而异。长列表文件以/lib/systemd/system/了解您需要或想要什么权限(可能root:root 644)。

请注意,该命令是 Jenkins 在您创建代理 jar 时为您提供的命令。只需将其用于ExecStart.

对于usergroup,我使用拥有 Jenkins 工作区所在目录的用户。例如,如果 Jenkins 工作区位于 中/home/ubuntu,我指定ubuntuusergroup

在那之后...

sudo 如果您不以 root 身份运行,请在这些前面加上前缀

重新加载 System D: 可能是个好主意systemctl daemon-reload

开始:systemctl start jenkins.service。请注意,该命令适用于文件的最后一行Alias

如果您希望该服务随您的计算机一起启动,请启用它:systemctl enable jenkins.service

以下是我的文件所依据的 Git 要点:

https://gist.github.com/unakatsuo/d4711f52a0ab0b9bc8010018149a7e84 https://gist.github.com/dragolabs/05dfe1c0899221ce51204dbfe7feecbb

我确信服务配置还可以做很多事情,但就我而言,我管理很多不同的服务器,只需要启动后自动启动!