系统要求
最低推荐配置:
- 256 MB可用内存
- 1GB 可用磁盘空间(作为一个 Docker 容器运行 jenkins 的话推荐 10GB)
为小团队推荐的硬件配置:
- 1 GB+ 可用内存
- 50 GB+ 可用磁盘空间
软件配置:
- Java 8 –无论是 Java 运行时环境(JRE) 还是 Java 开发工具包(JDK) 都可以
注意:如果将 Jenkins 作为容器运行,这不是必需的。
安装 Jenkins
Jenkins 通常作为一个独立的应用程序在其自己的流程中运行,内置 Java servlet 容器/应用程序服务器(Jetty)
Jenkins 也可以运行在不同的 Java servlet 容器(如 Apache Tomcat 或 GlassFish)中作为 servlet 运行。
注意:尽管此教程重点关注 Jenkins 的本地安装,但此内容也可用于帮助在生产环境中设置 Jenkins。
Docker 运行 Jenkins
CentOS 安装 Docker
- 卸载旧版本
较旧版本的Docker被称为docker或docker-engine。如果已安装这些,请卸载它们以及相关的依赖项。
1 | sudo yum remove docker \ |
2安装 Docker CE
安装所需要的包,yum-utils 提供了yum-config-manager 作用,device-mapper-persistent-data 和 lvm2 需要 devicemapper存储驱动程序。
1 | yum install -y yum-utils device-mapper-persistent-data lvm2 |
使用以下命令设置稳定的存储库
1 | yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo |
可选:启用边缘和测试存储库,这些存储库包含在 docker.repo 文件中,但默认情况下处于禁用状态。
1 | yum-config-manager --enable docker-ce-edge |
安装 docker
1 | yum install -y docker-ce |
如果提示您接受GPG密钥,请验证指纹是否匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果匹配 ,请接受它。
如果您启用了多个Docker存储库,则在未指定yum install或 yum update命令中的版本的情况下安装或更新始终会安装尽可能高的版本,这可能不适合您的稳定性需求。
配置 Docker 开机启动并启动 docker 服务
1 | systemctl enable docker && systemctl start docker |
Docker 中下载并运行 Jenkins
几个可用的Jenkins Docker镜像
建议使用的 Docker 镜像是 jenkinsci/blueocean image(来自 Docker Hub repository)。该镜像包含当前的长期支持(LTS) 的Jenkins 版本,捆绑了所有 Blue Ocean 插件和功能。这意味着你不需要单独安装 Blue Ocean 插件。
在 macOS 和 Linux 上
- 打开一个终端窗口
- 下载 jenkinsci/blueocean 镜像并使用以下
docker run
命令将其作为 Docker 中的容器运行:
1 | docker run \ |
参数说明:
- –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。 - -v jenkins-data:/var/jenkins_home:将容器中的 /var/jenkins_home 映射到宿主机的 /var/lib/docker/volumes/jenkins-data 目录,jenkins-data 卷也可以使用
docker volume create
命令创建:docker volume create jenkins-data
.例如,指定该选项 -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容器,则该守护进程是必需的。
- jenkinsci/blueocean: Docker镜像本身。如果此镜像尚未下载,则此 docker run 命令 将自动为您下载镜像。此外,如果自上次运行此命令后发布了此镜像的任何更新, 则再次运行此命令将自动为您下载这些已发布的镜像更新。 注意:这个Docker镜像也可以使用以下 docker pull命令独立下载(或更新) : docker pull jenkinsci/blueocean
访问 Jenkins/blueocean Docker 容器
如果您对 Docker 有一些经验,并且您希望或需要 jenkinsci/blueocean 通过终端/命令提示符访问docker exec ,则可以添加一个选项 --name jenkins-blueocean
(如 docker run 所述),这会为 jenkinsci/blueocean 容器命名为 “jenkins-blueocean” 。
这意味着你可以使用如下命令访问容器(通过单独的终端/命令提示符窗口) :
1 | docker exec -it jenkins-blueocean bash |
通过 Docker 日志访问 Jenkins 控制台日志
您可能需要访问Jenkins控制台日志。例如,在解锁 Jenkins 作为安装后设置向导的一部分时。
如果以上 docker run … 命令没有指定守护模式选项 -d , 那么Jenkins控制台日志是通过终端命令提示符窗口打印出来。
否则,您可以通过访问Jenkins控制台日志 Docker logs
中 的 jenkinsci/blueocean ,使用以下命令:
1 | docker logs <docker-container-name> |
访问 Jenkins 主目录
例如,您可能需要访问 Jenkins 主目录,以查看 workspace 子目录中 Jenkins 版本的详细信息。
如果您将 Jenkins 主目录( /var/jenkins_home )映射到您计算机 本地文件系统上的一个目录(如上面的 docker run … 命令 ), 那么您可以通过计算机常用的终端/命令提示符访问此目录的内容。
否则,如果您在 docker run … 命令里指定了 -v jenkins-data:/var/jenkins_home 选项, 则可以使用以下 docker exec jenkinsci/blueocean 命令通过容器的终端/命令提示符访问Jenkins主目录的内容:
1 | docker exec -it <docker-container-name> bash |
如上面所提到, 您的 <docker-container-name>
可以使用来获得 docker ps 命令。如果您在 docker run … 中指定了 –name jenkins-blueocean 该选项(也可参照 访问Jenkins / Blue Ocean Docker容器)), 则只需使用以下 docker exec 命令:
1 | docker exec -it jenkins-blueocean bash |
WAR 文件运行 Jenkins
Jenkins的Web应用程序ARchive(WAR)文件版本可以安装在任何支持Java的操作系统或平台上。
要下载并运行Jenkins的WAR文件版本,请执行以下操作:
- 将最新的稳定 Jenkins war 包下载到计算上;
- 在下载的目录内打开一个终端;
- 运行 java -jar jenkins.war
- 浏览
http://localhost:8080
并等到Unlock Jenkins
页面出现; - 继续使用
Post-installation setup wizard
后面步骤设置向导。
注意:
- 不像在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
安装后设置向导
下载安装并运行 Jenkins 后,即将开始进入安装向导。
此安装向导引导你完成几个快速”一次性”步骤来解锁 Jenkins,使用插件对其进行自定义,并创建第一个可以继续访问 Jenkins 管理员用户。
解锁 Jenkins
当你第一次访问新的 Jenkins 实力时,系统会要求你使用自动生成的密码对其进行解锁。
- 浏览到
http://localhost:8080
(或安装时为 Jenkins 配置的任何端口),并等待解锁 Jenkins 页面出现。 - 从 Jenkins 控制台日志输出中,复制自动生成的字母数字密码(两组星号之间)。
- 在解锁 Jenkins 页面上,将此密码粘贴到管理员密码字段中,然后点击继续。
注意:
- 如果您以分离模式在Docker中运行Jenkins,则可以从Docker日志(above) 访问Jenkins控制台日志。
- Jenkins控制台日志显示可以获取密码的位置(在Jenkins主目录中)。 必须在新Jenkins安装中的安装向导中输入此密码才能访问Jenkins的主UI。 如果您在设置向导中跳过了后续的用户创建步骤, 则此密码还可用作默认admininstrator帐户的密码(使用用户名“admin”)
自定义 Jenkins 插件
解锁 Jenkins 之后,在 Customize Jenkins 页面内,你可以安装任何数量的有用插件作为你初始步骤的一部分。
两个选项可以设置:
- 安装简易的插件:安装推荐的一组插件,这些插件基于最常见的用例.
- 选择要安装的插件: 选择安装的插件集。当你第一次访问插件选择页面时,默认选择建议的插件。
如果您不确定需要哪些插件,请选择 安装建议的插件 。 您可以通过Jenkins中的Manage Jenkins > Manage Plugins 页面在稍后的时间点安装(或删除)其他Jenkins插件 。
创建第一个管理员用户
最后,在 customizing Jenkins with plugins
之后,Jenkins要求您创建第一个管理员用户。出现“ 创建第一个管理员用户 ”页面时, 请在各个字段中指定管理员用户的详细信息,然后单击 保存完成 。 . 当 Jenkins准备好了 出现时,单击开始使用 Jenkins
。
注意:
这个页面可能显示 Jenkins几乎准备好了! 相反,如果是这样,请单击 重启 。 * 如果该页面在一分钟后不会自动刷新,请使用Web浏览器手动刷新页面。如果需要,请使用您刚刚创建的用户的凭据登录到Jenkins,并准备好开始使用Jenkins!
配置 Jenkins 加速
清华大学的 Jenkins 更新地址为:
1 | https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json |
更换方法
进入 Jenkins web 设置界面,选择“系统管理” –> “插件管理” –> “高级”, 在升级站点处的 URL 中填入:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
, 然后点击提交直接修改配置文件
进入 jenkins 的安装目录,找到 hudson.model.UpdateCenter.xml 文件,编辑文件,修改文件内 URL 为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
, 保存文件,重启服务;
可选项:
1 | sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' updates/default.json |