# jenkins

返回:服务器

16d4de13a1c8d7fd.jpg

57ff4e949d38478d83ace01f6c1c34df.jpg

# 安装jenkins

建议使用的Docker映像是jenkinsci/blueocean image(来自 the Docker Hub repository)。 该镜像包含当前的长期支持 (LTS) 的Jenkins版本 (可以投入使用) ,捆绑了所有Blue Ocean插件和功能。这意味着你不需要单独安装Blue Ocean插件。

# mac或者linux

在macOS和Linux上 打开一个终端窗口。

TIP

下载 jenkinsci/blueocean 镜像并使用以下docker run 命令将其作为Docker中的容器运行 :

docker run \
  -u root \
  --rm \
  -d \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins-data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkinsci/blueocean
1
2
3
4
5
6
7
8
9
  • --rm \
    (可选) jenkinsci/blueocean 关闭时自动删除Docker容器(下图为实例)。如果您需要退出Jenkins,这可以保持整洁。
  • -d \
    (可选)jenkinsci/blueocean 在后台运行容器(即“分离”模式)并输出容器ID。如果您不指定此选项, 则在终端窗口中输出正在运行的此容器的Docker日志。
  • -p 8080:8080 \
    映射(例如“发布”)jenkinsci/blueocean 容器的端口8080到主机上的端口8080。 第一个数字代表主机上的端口,而最后一个代表容器的端口。因此,如果您为此选项指定 -p 49000:8080 ,您将通过端口49000访问主机上的Jenkins。
  • -p 50000:50000 \
    (可选)将 jenkinsci/blueocean 容器的端口50000 映射到主机上的端口50000。 如果您在其他机器上设置了一个或多个基于JNLP的Jenkins代理程序,而这些代理程序又与 jenkinsci/blueocean 容器交互(充当“主”Jenkins服务器,或者简称为“Jenkins主”), 则这是必需的。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信。 您可以通过“ 配置全局安全性” 页面更改Jenkins主服务器上的端口号。如果您要将您的Jenkins主机的JNLP代理端口的TCP端口 值更改为51000(例如),那么您需要重新运行Jenkins(通过此 docker run …​命令)并指定此“发布”选项 -p 52000:51000,其中最后一个值与Jenkins master上的这个更改值相匹配,第一个值是Jenkins主机的主机上的端口号, 通过它,基于JNLP的Jenkins代理与Jenkins主机进行通信 - 例如52000。 (可选,但强烈建议)映射在容器中的/var/jenkins_home 目录到具有名字 jenkins-data 的volume。 如果这个卷不存在,那么这个 docker run 命令会自动为你创建卷。 如果您希望每次重新启动Jenkins(通过此 docker run ... 命令)时保持Jenkins状态,则此选项是必需的 。 如果你没有指定这个选项,那么在每次重新启动后,Jenkins将有效地重置为新的实例。
  • -v jenkins-data:/var/jenkins_home \
    注意: 所述的 jenkins-data 卷也可以 docker volume create命令创建: docker volume create jenkins-data 代替映射 /var/jenkins_home 目录转换为Docker卷,还 可以将此目录映射到计算机本地文件系统上的目录。 例如,指定该选项 -v $HOME/jenkins:/var/jenkins_home 会将容器的 /var/jenkins_home 目录映射 到 本地计算机上目录中的 jenkins 子目录, 该$HOME目录通常是 /Users/<your-username>/jenkins/home/<your-username>/jenkins
  • -v /var/run/docker.sock:/var/run/docker.sock \
    (可选 /var/run/docker.sock 表示Docker守护程序通过其监听的基于Unix的套接字。 该映射允许 jenkinsci/blueocean 容器与Docker守护进程通信, 如果 jenkinsci/blueocean 容器需要实例化其他Docker容器,则该守护进程是必需的。 如果运行声明式管道,其语法包含agent部分用 docker 例如, agent { docker { ... } } 此选项是必需的。 在Pipeline Syntax 页面上阅读更多关于这个的信息 。

jenkinsci/blueocean Docker镜像本身。如果此镜像尚未下载,则此 docker run 命令 将自动为您下载镜像。此外,如果自上次运行此命令后发布了此镜像的任何更新, 则再次运行此命令将自动为您下载这些已发布的镜像更新。 注意:这个Docker镜像也可以使用以下 docker pull命令独立下载(或更新) : docker pull jenkinsci/blueocean

TIP

继续按照Post-installation setup wizard安装。

# windows上

  • 打开命令提示符窗口。
  • 下载 jenkinsci/blueocean 镜像并使用以下 docker run 命令将其作为Docker中的容器运行 :
docker run ^
  -u root ^
  --rm ^
  -d ^
  -p 8080:8080 ^
  -p 50000:50000 ^
  -v jenkins-data:/var/jenkins_home ^
  -v /var/run/docker.sock:/var/run/docker.sock ^
  jenkinsci/blueocean
1
2
3
4
5
6
7
8
9
  • 继续按照Post-installation setup wizard安装。

# WAR文件

TIP

Jenkins的Web应用程序ARchive(WAR)文件版本可以安装在任何支持Java的操作系统或平台上。

要下载并运行Jenkins的WAR文件版本,请执行以下操作:

  • 最新的稳定Jenkins WAR包 下载到您计算机上的相应目录。
  • 在下载的目录内打开一个终端/命令提示符窗口到。
  • 运行命令java -jar jenkins.war
  • 浏览http://localhost:8080并等到Unlock Jenkins页面出现。
  • 继续使用Post-installation setup wizard后面步骤设置向导。

WARNING

  • 不像在Docker中下载和运行有Blue Ocean的Jenkins,这个过程不会自动安装Blue Ocean功能, 这将分别需要在jenkins上通过 Manage Jenkins > Manage Plugins安装。 在Getting started with Blue Ocean有关于安装Blue Ocean的详细信息 。.
  • 您可以通过--httpPort在运行java -jar jenkins.war命令时指定选项来更改端口。例如,要通过端口9090访问Jenkins,请使用以下命令运行Jenkins: java -jar jenkins.war --httpPort=9090

# exe_msi文件

从网站安装的话, 请使用安装程序:

密码

C:\Windows\system32\config\systemprofile\AppData\Local\Jenkins.jenkins\secrets\initialAdminPassword

# 配置jenkins镜像的ssh密钥

# 查看当前运行镜像的id

docker ps
1

# 进入镜像命令行

docker exec -it 你的镜像ID /bin/bash
1

# 生成SSH密钥

cd /root/.ssh
ssh-keygen -t rsa -C 你邮箱
cat id_rsa.pub
1
2
3

# 配置jenkins的github hook

  • 进入主界面的 系统管理
  • 进入系统设置
  • 往下拉, 可以看到github的配置区, 这里github插件是前期初始化的时候自动安装的, 没有的可以区插件中安装GitHub plugin
  • 点击凭据后的Add按钮, 添加凭据, 就是账号密码, 搞好后点击连接测试, 成功即可
  • 随后点击下面的Advance
    选中即可生成hook
  • 到github的项目下配置hook

# Jenkins安装

  • 1.下载安装包jenkins.war;
  • 2.在安装包根路径下,运行命令 java -jar jenkins.war --httpPort=8099,(linux环境、Windows环境都一样);
# 默认端口为8080
java -jar jenkins.war --httpPort=8099
1
2

2020-09-29_100015.jpg

  • 4.填写初始密码,激活系统

2020-09-29_100220.jpg

2020-09-29_100314.jpg

2020-09-29_100404.jpg

# Jenkins基本配置

# 系统初始化配置

2020-09-29_102040.jpg

# Configure System (系统设置)

在系统设置这里,我们只需要设置最后面的一项,配置远程服务器地址
即我们代码最终运行的服务器地址信息,就像我们之前手动部署时使用xshell登录Linux服务器一样,
当然这里是可以配置多台远程Linux服务器的,配置完成后点击保存即可,为后面我们配置自动化部署做准备,配置如下图【注意需要安装插件(Publish over SSH)】:

2020-09-29_151757.jpg

# Configure Global Security (全局安全配置)

  • 配置用户相关的权限
  • 配置钩子程序(当用代码更新时通知)访问权限,避免报403错误
    默认是勾选上了的,这里去掉勾选

2020-09-29_152050.jpg

# Global Tool Configuration (全局工具配置 )

  • 配置maven的全局settings路径
  • 配置jdk
  • 配置git
  • 配置maven的安装路径

2020-09-29_152304.jpg

# 配置必要插件

主要是检查如下这插件是否已安装

svn

新版中无默认绑定svn插件,需手动安装,从【管理插件】模块中搜索subversion,直接安装即可

maven

手动安装maven插件

Publish over

Publish over SSH插件安装

Deploy to container

Deploy to container Plugin安装

# Jenkins自动化部署(springBoot+maven+gitHub(或者svn))项目

# Jenkins服务器上创建项目和配置

大体步骤

General(基础配置)--》源码管理--》构建触发器--》构建环境--》构建--》构建后操作

# 创建一个工程

# General(基础配置)