Jenkins(1)安装

Ubuntu22.04安装Jenkins

安装Java

1
2
3
4
5
6
sudo apt update
sudo apt install fontconfig openjdk-17-jre
java -version
openjdk version "17.0.8" 2023-07-18
OpenJDK Runtime Environment (build 17.0.8+7-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.8+7-Debian-1deb12u1, mixed mode, sharing)

安装Jenkins

1
2
3
4
5
6
7
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install jenkins

运行Jenkins

配置开机启动。

1
sudo systemctl enable jenkins

启动Jenkins。

1
sudo systemctl start jenkins

查看Jenkins状态。

1
sudo systemctl status jenkins

配置jenkins

如果需要修改jenkins的端口号,可以编辑/etc/default/jenkins文件。

1
sudo vim /etc/default/jenkins
1
HTTP_PORT=<custom_port>

重启Jenkins。

1
sudo systemctl restart jenkins

如果配置不生效,可以编辑/lib/systemd/system/jenkins.service文件。

1
sudo vim /lib/systemd/system/jenkins.service
1
Environment="JENKINS_PORT=<custom_port>"

重启Jenkins。

1
2
sudo systemctl daemon-reload
sudo systemctl restart jenkins

配置nginx

如果需要使用nginx代理Jenkins,可以配置nginx。

编辑/etc/nginx/conf.d/jenkins.conf文件。

1
sudo vim /etc/nginx/conf.d/jenkins.example.com.conf
1
2
3
4
5
6
7
8
9
10
11
12
server {
listen 80;
server_name jenkins.example.com;

location / {
proxy_pass http://localhost:<custom_port>;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

故障排查

查看Jenkins日志。

1
sudo journalctl -xe

如果Jenkins无法启动,可以查看/var/log/jenkins/jenkins.log文件。

1
sudo tail -200f /var/log/jenkins/jenkins.log

Jenkins相关目录

  • /var/lib/jenkins:Jenkins的工作目录,包括jobs、plugins、workspace等。
  • /var/log/jenkins:Jenkins的日志目录。
  • /etc/default/jenkins:Jenkins的配置文件。
  • /etc/init.d/jenkins:Jenkins的启动脚本。
  • /etc/systemd/system/jenkins.service:Jenkins的systemd服务文件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ ls /var/lib/jenkins/
caches hudson.plugins.gradle.injection.InjectionConfig.xml jenkins.model.GlobalComputerRetentionCheckIntervalConfiguration.xml org.jenkinsci.plugins.workflow.libs.GlobalUntrustedLibraries.xml
com.cloudbees.hudson.plugins.folder.config.AbstractFolderConfiguration.xml hudson.plugins.timestamper.TimestamperConfig.xml jenkins.model.JenkinsLocationConfiguration.xml plugins
config.xml hudson.tasks.Mailer.xml jenkins.security.ResourceDomainConfiguration.xml queue.xml
credentials.xml hudson.tasks.Shell.xml jenkins.tasks.filters.EnvVarsFilterGlobalConfiguration.xml queue.xml.bak
fingerprints hudson.triggers.SCMTrigger.xml jenkins.telemetry.Correlator.xml secret.key
github-plugin-configuration.xml identity.key.enc jobs secret.key.not-so-secret
hudson.model.UpdateCenter.xml io.jenkins.plugins.junit.storage.JunitTestResultStorageConfiguration.xml logs secrets
hudson.plugins.build_timeout.global.GlobalTimeOutConfiguration.xml jenkins.fingerprints.GlobalFingerprintConfiguration.xml nodeMonitors.xml updates
hudson.plugins.build_timeout.operations.BuildStepOperation.xml jenkins.install.InstallUtil.lastExecVersion org.jenkinsci.plugins.displayurlapi.DefaultDisplayURLProviderGlobalConfiguration.xml userContent
hudson.plugins.emailext.ExtendedEmailPublisher.xml jenkins.install.UpgradeWizard.state org.jenkinsci.plugins.github_branch_source.GitHubConfiguration.xml users
hudson.plugins.git.GitSCM.xml jenkins.metrics.api.MetricsAccessKey.xml org.jenkinsci.plugins.workflow.flow.FlowExecutionList.xml workspace
hudson.plugins.git.GitTool.xml jenkins.model.ArtifactManagerConfiguration.xml org.jenkinsci.plugins.workflow.flow.GlobalDefaultFlowDurabilityLevel.xml
hudson.plugins.gradle.enriched.EnrichedSummaryConfig.xml jenkins.model.GlobalBuildDiscarderConfiguration.xml org.jenkinsci.plugins.workflow.libs.GlobalLibraries.xml