环境准备:
OS: CentOS Linux release 7.9.2009 (Core)
关闭selinux
一,Jenkins部署
- 检查java环境,Jenkins由java开发需要依赖Java环境,下载的是jdk8(不是openjdk)的完整安装好的版本
[root@localhost ~]# mkdir -p /application
[root@localhost ~]# tar xf jdk-8u202-linux-x64.tar.gz -C /application/
[root@localhost ~]# ll /application/jdk1.8.0_202/
total 25988
drwxr-xr-x 2 10 143 4096 Dec 16 2018 bin
-r–r–r– 1 10 143 3244 Dec 16 2018 COPYRIGHT
drwxr-xr-x 3 10 143 132 Dec 16 2018 include
-rw-r–r– 1 10 143 5211154 Dec 12 2018 javafx-src.zip
drwxr-xr-x 5 10 143 185 Dec 16 2018 jre
drwxr-xr-x 5 10 143 245 Dec 16 2018 lib
-r–r–r– 1 10 143 40 Dec 16 2018 LICENSE
drwxr-xr-x 4 10 143 47 Dec 16 2018 man
-r–r–r– 1 10 143 159 Dec 16 2018 README.html
-rw-r–r– 1 10 143 424 Dec 16 2018 release
-rw-r–r– 1 10 143 21105955 Dec 16 2018 src.zip
-rw-r–r– 1 10 143 112724 Dec 12 2018 THIRDPARTYLICENSEREADME-JAVAFX.txt
-r–r–r– 1 10 143 153824 Dec 16 2018 THIRDPARTYLICENSEREADME.txt
#配置java的环境变量,追加下面的内容到/etc/profile
export JAVA_HOME=/application/jdk1.8.0_202
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
[root@localhost ~]# source /etc/profile
[root@localhost ~]# java -version
java version “1.8.0_202”
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
#项目需要用ant做构建,所以必须安装ant
wget https://mirrors.tuna.tsinghua.edu.cn/apache//ant/binaries/apache-ant-1.9.15-bin.tar.gz
tar xf apache-ant-1.9.15-bin.tar.gz
mv apache-ant-1.9.15 /application/
update /etc/profile文件
export ANT_HOME=/application/apache-ant-1.9.15
export JAVA_HOME=/application/jdk1.8.0_202
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin:$ANT_HOME/bin
[root@localhost ~]# ant -version
Apache Ant(TM) version 1.9.15 compiled on May 10 2020
#安装rsync和protobuf,创建用户公钥并推送给远程服务器实现免密码rsync
1)yum install rsync -y
2)插件传送公钥略
3)宿主机安装安装protobuf:
Protocol Buffers(简称:ProtoBuf)是一种序列化数据结构的协议。
对于透过管道(pipeline)或存储资料进行通信的程序开发上是很有用的。这个方法包含一个接口描述语言,描述一些数据结构,并提供程序工具根据这些描述产生代码,用于将这些数据结构产生或解析资料流。
语言支持
proto2提供一个程序产生器,支持C++、Java和Python。
第三方实现支持JavaScript。
proto3提供一个程序产生器,支持C++、Java (包含JavaNano)、Python、Go、Ruby、Objective-C和C#.从 3.0.0 Beta 2 版开始支持JavaScript
第三方实现支持Perl、PHP、Dart、Scala和Julia.
安装依赖工具
yum install autoconf automake libtool curl make g++ unzip gcc-c++ -y
下载解压
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/protobuf-cpp-3.7.1.tar.gz
tar xf protobuf-cpp-3.7.1.tar.gz
cd protobuf-3.7.1/
./autogen.sh
./configure
make
make check
sudo make install
sudo ldconfig
为了与程序相匹配,为protoc创建一个软连接
[root@localhost protobuf-3.7.1]# mkdir -p /home/protobuf/bin/
[root@localhost protobuf-3.7.1]# ln -s /usr/local/bin/protoc /home/protobuf/bin/
[root@localhost protobuf-3.7.1]# ll /home/protobuf/bin/protoc
lrwxrwxrwx 1 root root 21 Jun 10 18:04 /home/protobuf/bin/protoc -> /usr/local/bin/protoc
[root@localhost protobuf-3.7.1]# /home/protobuf/bin/protoc –version
libprotoc 3.7.1
PS:编译的时候一直出错的原因是
少了/usr/local/include/google/protobuf这个目录下面的必要的文件和目录
所以一定要把这个include目录整体拷贝到/home/protobuf
- 下载安装Jenkins的rpm包
wget https://mirror.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.290-1.1.noarch.rpm
yum install jenkins-2.290-1.1.noarch.rpm
问题:
原因:
这个是 Jenkins 未加载到 java 环境的问题,直接到修改 Jenkins 的启动文件,并在 candiddates 参数内追加 java 的环境变量即可
解决:
如果使用 Jenkins rpm 包的方式安装的 Jenkin,则输入命令 “vim /etc/init.d/jenkins” ,进行修改;
如下图:
#让root运行Jenkins,否则无法执行shell脚本(很重要!!!)
[root@localhost ~]# /etc/init.d/jenkins start
Starting jenkins (via systemctl): Warning: jenkins.service changed on disk. Run ‘systemctl daemon-reload’ to reload units.
[ OK ]
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 861/sshd
tcp6 0 0 :::8080 :::* LISTEN 3675/java
tcp6 0 0 :::22 :::* LISTEN 861/sshd
#设置开机自启动
[root@localhost ~]# chkconfig jenkins on
[root@localhost ~]# chkconfig –list|grep 3:on
jenkins 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost ~]# rpm -ql jenkins
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/Jenkins
[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
ea8534776d234e2f8d06432f56de4010
准备安装插件,修改原官网url(国外服务器,安装太慢,如果服务器是在国外就不用改了),更改插件Updates地址,别忘记最后修改完点击Submit
将
https://updates.jenkins.io/update-center.json
换成:
https://mirror.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
或者
http://mirror.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
还没有完,在/var/lib/jenkins/updates 里有一个default.json,里面url地址也需要改,否则不会生效。注:
sed -i ‘s/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g’ /var/lib/jenkins/updates/default.json && sed -i ‘s/http:\/\/www.google.com/https:\/\/www.baidu.com/g’ /var/lib/jenkins/updates/default.json
systemctl restart jenkins
安装开发测试环境下需要的插件
0) Localization: Chinese (Simplified) 汉化
- Ant
- Extended Choice Parameter , Workspace Cleanup
3) Subversion, SVN 1.4 Compatibility, Subversion Workspace Cleaner
4) Publish Over SSH
5) DingTalk, Dingding JSON Pusher, SSH server, Extra Columns,SSH
6)Thinbackup
遇到的问题:
1)Jenkins远程执行shell出现java: command not found
2)由于Jenkins的java启动内存太小,出错了
同样修改jenkins的配置文件,修改JAVA_OPTIONS参数
修改/etc/init.d/jenkins 启动文件
JENKINS_JAVA_OPTIONS=”-Xms256m -Xmx512m -Xmn256m -XX:MaxMetaspaceSize=256m -XX:MaxDirectMemorySize=128m -Dhudson.util.ProcessTree.disable=true -Djava.awt.headless=true”