这个是给同事看的,没仔细整理。
一、安装
1.1、使用官网的安装教程
首先,进入官网,查看官网的安装攻略。
curl -fsSL https://pkg.jenkins.io/debian/jenkins.io-2023.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install fontconfig openjdk-17-jre
sudo apt-get install jenkins
当执行jenkins安装时,会报一堆错误,大致分析原因,应该是jenkins需要安装很多依赖包。
注意,JDK需要在/user/bin处创建软链
ln -s /SDK/java/17/bin/java /usr/bin/java
1.2、安装依赖
安装时,会发现报这样的错误:
dpkg: warning: files list file for package `*****’ missing, assuming package has no files currently installed
这个错误的原因是,dpkg包有些依赖没有安装,可以执行以下脚本解决:
#!/bin/bash
set -e
# Clean out /var/cache/apt/archives
apt-get clean
# Fill it with all the .debs we need
apt-get --reinstall -dy install $(dpkg --get-selections | grep '[[:space:]]install' | cut -f1)
DIR=$(mktemp -d -t info-XXXXXX)
for deb in /var/cache/apt/archives/*.deb
do
# Move to working directory
cd "$DIR"
# Create DEBIAN directory
mkdir -p DEBIAN
# Extract control files
dpkg-deb -e "$deb"
# Extract file list, fixing up the leading ./ and turning / into /.
dpkg-deb -c "$deb" | awk '{print $NF}' | cut -c2- | sed -e 's/^\/$/\/./' > DEBIAN/list
# Figure out binary package name
DEB=$(basename "$deb" | cut -d_ -f1)
# Copy each control file into place
cd DEBIAN
for file in *
do
cp -a "$file" /var/lib/dpkg/info/"$DEB"."$file"
done
# Clean up
cd ..
rm -rf DEBIAN
done
rmdir "$DIR"
记得执行前chmod u+x 哦
而后,再次执行安装命令
sudo apt-get install jenkins
二、配置jenkins
jenkins的配置文件在这里:
/lib/systemd/system/jenkins.service
使用vim打开,主要配置以下几个字段
# 端口
Environment="JENKINS_PORT=8888"
# 工作空间
WorkingDirectory=/var/lib/jenkins
# 用户
User=hataksumo
2.1 处理翻墙问题
如果下列代码执行不通过,可能是外网被墙了
sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io-2023.key
那么就自己在windows下开启翻墙软件,手动访问这些链接,再把对应的东西拷贝到相应位置
也需要配置一下阿里云的镜像
2.2 其他问题记录
当git param插件拉取不出任何分支信息时,并显示如下提示时:
No Git repository configured in SCM configuration or plugin is configured wrong
不要慌,那是因为必须成功拉取一次代码后,该插件才能拉取分支。手工黄豆流汗.jpg
如果出现:
hudson.plugins.git.GitException: Could not init /var/lib/jenkins/workspace/nbr_new_001
这一类的错误,那是宿主机没装git
当出现:
Could not transfer artifact from/to maven-default-http-blocker (http://0.0.0.0/)
这种错误时,是因为3.9以后的maven默认不允许http访问,要https访问
只要在maven的setting里,改一下blocked就行了
<mirror>
<id>maven-default-http-blocker</id>
<mirrorOf>external:http:*</mirrorOf>
<name>Pseudo repository to mirror external repositories initially using HTTP.</name>
<url>http://0.0.0.0/</url>
<blocked>false</blocked>
</mirror>
三、把jenkins配置在nginx后面
systemctl edit jenkins
[Service]
Environment="JENKINS_PREFIX=/jenkins"
systemctl restart jenkins
这样,访问ip/jenkins就可以访问到jenkins了
四、center os上安装git
git把center os除名了,需要源码编译
首先安装g++c++的库
sudo yum install gcc-c++
然后,安装openssl的库
sudo yum install openssl-devel
sudo yum install libcurl-devel
sudo yum install expat-devel
sudo yum install perl-ExtUtils-MakeMaker
把jenkins账号放进root组
sudo usermod -a -G root jenkins
一些没权限写入的目录,可以chmod g+w
比如maven存放的目录
JDK6,还有个依赖需要装
sudo dnf install libnsl