在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
|
重启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日志。
如果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
|