Jenkins - 各平台环境搭建


before

来自官网的安装教程:https://www.jenkins.io/zh/doc/book/installing/
这里演示了在Linux和Windows平台的环境搭建,至于Mac.....再说吧

由于Jenkins基于Java开发,所以,Jenkins的运行依赖Java JRE(java runtime environment)环境。所以,我们要想使用Jenkins,必须:

  • 机器要求
    • 256MB内存,建议大于512MB
    • 10GB的硬盘空间(用于Jenkins和docker镜像)
  • 需要安装
    • Java 8及以上版本。
    • Docker

Java JDK的安装

各平台安装Java JDK:https://www.cnblogs.com/Neeo/articles/11954283.html

Jenkins下载地址

官网:https://jenkins.io/zh/

官网下载链接:https://jenkins.io/zh/download/

相关软件百度云地址

链接:https://pan.baidu.com/s/1KVGiuH5-diz8OK11C--CFA 提取码:0ek2

linux环境:Tomcat部署Jenkins

虚拟机centos7.3 + Tomcat 8.5.55 + Jenkins

安装过程如下,简单来说就是下载Tomcat解压并且重命名,然后下载war包,之后启动Tomcat服务。

[root@C ~]# cd /opt/
[root@C opt]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.55/bin/apache-tomcat-8.5.55.tar.gz
[root@C opt]# tar -zxvf apache-tomcat-8.5.55.tar.gz  && rm -rf apache-tomcat-8.5.55.tar.gz
[root@C opt]# mv apache-tomcat-8.5.55/ tomcat8
[root@C opt]# cd tomcat8/webapps/
[root@C webapps]# pwd
/opt/tomcat8/webapps
[root@C webapps]# wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
[root@C webapps]# ls
docs  examples  host-manager  jenkins.war  manager  ROOT
[root@C webapps]# ../bin/startup.sh 
Using CATALINA_BASE:   /opt/tomcat8
Using CATALINA_HOME:   /opt/tomcat8
Using CATALINA_TMPDIR: /opt/tomcat8/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_171/jre
Using CLASSPATH:       /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar
Tomcat started.

然后获取初密码浏览器访问即可:http://ip:8080/jenkins/:

[root@C webapps]# cat /root/.jenkins/secrets/initialAdminPassword 
8ce68dfc32fa4385be5f5b0a1a536a47

修改update链接:

[root@r ~]# cat /root/.jenkins/hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://updates.jenkins.io/update-center.json</url>
  </site>
</sites>[root@r ~]# vim /var/lib/jenkins/hudson.model.UpdateCenter.xml 

修改为:

[root@r ~]# cat /root/.jenkins/hudson.model.UpdateCenter.xml 
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>

配置Tomcat开启启动,编辑vim /usr/lib/systemd/system/tomcat.service文件:

[Unit]
Description=Apache Tomcat
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/opt/tomcat8/tomcat.pid
Environment=JAVA_HOME=/usr/local/jdk1.8.0_171
Environment=CATALINA_HOME=/opt/tomcat8

ExecStart=/opt/tomcat8/bin/daemon.sh start
ExecStop=/opt/tomcat8/bin/daemon.sh stop
User=tomcat
Group=tomcat
PrivateTmp=true
[Install]
WantedBy=multi-user.target

重新加载配置:

systemctl daemon-reload

常用命令:

systemctl status tomcat.service
systemctl stop tomcat.service
systemctl start tomcat.service
systemctl restart tomcat.service
systemctl enable tomcat.service

参考:centos7下配置Tomcat开机启动(service方式和daemon方式)

for centos

  1. 首先要确保你的Java环境已经配置完毕:
[root@r ~]# java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
[root@r ~]# ls /usr/bin/java*
/usr/bin/java
  1. 安装git:
[root@r ~]# yum install -y git
[root@r ~]# git --version
git version 1.8.3.1
  1. 查看/etc/sysconf目录下是否有jenkins文件,有就删除:
[root@r ~]# ls /etc/sysconfig/jenkins*
/etc/sysconfig/jenkins
[root@r ~]# rm -rf /etc/sysconfig/jenkins
  1. 下载rpm包,参见:http://pkg.jenkins-ci.org/redhat-stable/,但从这里下载非常慢,我们选择从国内的镜像源下载,然后安装:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/
# 官网镜像
[root@r ~]# wget http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.222.3-1.1.noarch.rpm
# 清华源镜像
[root@r ~]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.222.3-1.1.noarch.rpm

# 使用rpm安装
[root@r ~]# sudo rpm -ivh jenkins-2.222.3-1.1.noarch.rpm
  1. 配置监听端口(默认监听的是8080端口,可以修改一个其他端口),以及给目录权限(避免其他不必要的麻烦):
# 修改端口和 root 权限
[root@r ~]# vim /etc/sysconfig/jenkins
# JENKINS_PORT="8080"
JENKINS_PORT="6004"

# 给目录权限
[root@r ~]# chown -R jenkins:jenkins /var/lib/jenkins
[root@r ~]# chown -R jenkins:jenkins /var/cache/jenkins
[root@r ~]# chown -R jenkins:jenkins /var/log/jenkins
[root@r ~]# chown -R jenkins:jenkins /var/lib/jenkins

  1. 必要的命令:
# 设置为开机自启动
sudo systemctl enable jenkins
# 启动Jenkins服务
sudo systemctl start jenkins
# 重启Jenkins服务
sudo systemctl restart jenkins
# 检查Jenkins服务状态
sudo systemctl status jenkins
# Jenkins的服务状态有以下几种:
- loaded ##系统服务已经初始化完成,加载过配置
- active(running) ##正有一个或多个程序正在系统中执行, vsftpd就是这种模式
- atcive(exited) ##仅执行一次就正常结束的服务, 目前并沒有任何程序在系統中执行
- atcive(waiting)##正在执行当中,不过还在等待其他的事件才能继续处理
- inactive #服务关闭
- enbaled ##服务开机启动
- disabled ##服务开机不自启
- static ##服务开机启动项不可被管理
- failed ##系统配置错误
  1. 拿到初始密码,浏览器访问ip:6004启动吧:
[root@r ~]# cat /var/lib/jenkins/secrets/initialAdminPassword 
ee38795bb1574e9484b38f45e56b0eeb

  1. 可选配置,修改update链接:
[root@r ~]# cat /var/lib/jenkins/hudson.model.UpdateCenter.xml 
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://updates.jenkins.io/update-center.json</url>
  </site>
</sites>[root@r ~]# vim /var/lib/jenkins/hudson.model.UpdateCenter.xml 

修改为:

[root@r ~]# cat /var/lib/jenkins/hudson.model.UpdateCenter.xml 
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>

然后sudo systemctl restart jenkins重启,在浏览器访问。
后续的配置就是下载插件和创建管理员用户以及配置基本的URL了,这里就不在表述了,可以下拉本篇博客,后续的部分有说明。
参考:CentOS 7 安装 Jenkins | CentOS7安装Jenkins | Linux centos7安装Jenkins,提示:stat: cannot stat ‘/var/cache/jenkins’: No such file or directory |

for docker

centos7.7

常用的两个镜像是:

docker pull jenkins/jenkins:latest
docker pull jenkinsci/blueocean:latest

这里以jenkins/jenkins:latest为例。

首先你的服务器提前安装好了docker服务。

  1. 拉取Jenkins镜像,这的镜像使用的是Jenkins官网推荐的镜像:
[root@r ~]# docker pull jenkinsci/blueocean
[root@r /]# docker images | grep jenkins
jenkins/jenkins        lts                 7e250da768ed        3 weeks ago         619MB
  1. 在宿主机上创建Jenkins的持久化目录:
[root@r /]# mkdir /docker_data/jenkins_home
  1. 启动Jenkins容器:
docker run \
  -u root \
  --name myjenkins \
  --restart=always \
  -d \
  -p 6004:8080 \
  -p 50000:50000 \
  --env JAVA_OPTS="-Xmx1024m" \
  -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
  -v /etc/localtime:/etc/localtime \
  -v /docker_data/jenkins_home:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkins/jenkins:latest

各参数的意义:

  • -u root,默认的,Jenkins镜像内部使用的用户是jenkons,但是我们启动容器时的账号是root,导致没有权限操作内部目录,所以,需要在启动的时候,让Jenkins的内部用户是root。
  • --name myjenkins,给jenkins给容器起一个别名叫做myjenkins
  • --restart=always,表示将容器跟随docker服务重启而重启。
  • -d,后台运行镜像。
  • -p 6004:8080,将镜像的8080端口映射到宿主机的6004端口。
  • -p 50000:50000,将镜像的50000端口映射到服务器的50000端口,50000 端口允许访问远程 Java (JIRA) API。
  • --env JAVA_OPTS="-Xmx1024m",配置JVM最大使用内存。
  • -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai,控制jenkins的时区为亚洲上海。
  • -v /etc/localtime:/etc/localtime,让容器使用和服务器同样的时间设置。
  • -v /docker_data/jenkins_data/:/var/jenkins_home,挂在卷,持久化存储。
  • -v /var/run/docker.sock:/var/run/docker.sock,(可选 /var/run/docker.sock 表示Docker守护程序通过其监听的基于Unix的套接字。 该映射允许 jenkinsci/blueocean 容器与Docker守护进程通信, 如果 jenkinsci/blueocean 容器需要实例化其他Docker容器,则该守护进程是必需的。 如果运行声明式管道,其语法包含agent部分用 docker。
  • jenkins/jenkins:latest,该容器来自于哪个镜像,这里是镜像名称。

PS:有个疑惑,刚开始,为了jenkins的时区问题,我使用-v /etc/localtime:/etc/localtime来同步容器和宿主机的时区,但是貌似并没有解决问题,后来,就有了-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai参数来更改时区。

  1. 查询log日志,获取初始密码,下面截取初始密码部分部分日志:
[root@r jenkins_home]# docker logs myjenkins
Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
2020-04-18 11:06:32.620+0000 [id=1]	INFO	org.eclipse.jetty.util.log.Log#initialized: Logging initialized @400ms to 
2020-04-18 11:06:41.502+0000 [id=27]	INFO	jenkins.install.SetupWizard#init: 
*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

06e2d1bb8d984dc99d2f569c976a18ef

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

2020-04-18 11:06:53.259+0000 [id=42]	INFO	hudson.model.AsyncPeriodicWork#lambda$doRun$0: Finished Download metadata. 13,224 ms
  1. 浏览器访问ip:6004端口输入初始密码,进行后续的配置步骤:
  2. 新手就选择安装推荐的插件吧,虽然后续也可以单独下载插件;后续的步骤按照提示就可以了。

for Tomcat

来看Tomcat中如何安装Jenkins。

win10 + jenkins

参考:https://blog.csdn.net/qq_38318622/article/details/79419492

for windows

下载

  • 下载到本地是一个msi文件,点击它。

  • 选择安装目录,继续点击下一步。

  • 点击安装。

  • 安装完成。

入门

当安装完成,会自动的打开浏览器,进入解锁Jenkins页面。按照提示,去本地找密码,然后粘贴到输入框中,点击继续。

选择推荐的插件下载即可。

在漫长的等待过程中,可能会发生各种意外, 但请记住一点:如果发生意外,请间歇性的刷新浏览器,很可能就......好了.....好不了,喝杯咖啡考虑一下人生回来....继续刷新.....,我反正两次插件安装失败,我都是刷新解决的........

如果遇到有的插件安装失败,就点击重试....

创建管理员用户

配置实例

根据需要配置ip地址,如果你的是远程服务器的,就配个公网的ip或者绑定域名也行;本地的话,就直接localhost吧。

访问主页:

现在,Jenkins算是安装成功。

for Mac

--待填充

More

如果遇到docker下载特别慢的情况。怎么办。

vmware中的centos7

  • 编辑docker配置文件
[root@bogon ~]# vi /lib/systemd/system/docker.service 
  • ExecStart值更改为阿里云。
# ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd --registry-mirror=https://u1qbyfsc.mir
ror.aliyuncs.com

这样的话,docker再去拉去镜像就会快很多。

放开防火墙端口号

vmware中的centos7

如果是虚拟机或者远程服务器,有可能造成防火墙没有放开端口号,导致我们远程连接Jenkins失败,来看解决办法。

firewall-cmd --list-ports   # 查看一下当前开放的端口

# 如果该命令提示
[root@bogon ~]# firewall-cmd --list-ports
FirewallD is not running

# 那么启动它
[root@bogon ~]# systemctl start firewalld   # 启动
[root@bogon ~]# firewall-cmd --list-ports   # 然后重新执行

终端启动Jenkins

在Windows平台下,Jenkins并没有创建什么快捷方式。而是需要通过命令行来启动。

注意,终端必须是管理员权限的

net start jenkins   # 开启服务
net stop jenkins    # 停止服务

然后浏览器访问:

http://localhost:8080

修改端口

环境是:Windows
可能8080这个端口容易被占用,所以我们去jenkins安装目录下找到一个叫jenkins.xml的文件,修改你想要的端口即可。

在安装插件时报错:无法连接到Jenkins

环境是:阿里云centos7

这个问题很奇妙!我的环境是阿里云服务器,检查了Jenkins是否开启,是否可以ping通网络等等,都没啥问题。

最后的解决办法是刷新浏览器!不能行就多试几次!!我也不知道为啥突然好了.....

在安装插件时出现:No such plugin: cloudbees-folder

环境是:Windows

这个问题也很奇妙!但此时我的环境是win10企业版,检查了Jenkins是否开启,是否可以ping通网络等等,都没啥问题。

最后的解决办法是刷新浏览器!不能行就多试几次!!我也不知道为啥突然好了.....貌似我还改了一下端口(然后重启了Jenkins),但这并没有啥影响吧。


see also:[docker:CentOS安装 docker和默认安装目录](https://blog.csdn.net/weixin_38750084/article/details/90317730) | [如何进入、退出docker的container]( ) | [Centos7上安装docker](https://www.cnblogs.com/yufeng218/p/8370670.html)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM