Skip to content

Commit

Permalink
feat(Jenkins): 新增安装、部署配置,记录流程文档
Browse files Browse the repository at this point in the history
  • Loading branch information
142vip.cn committed Dec 19, 2023
1 parent 1c2e4e2 commit 5855015
Show file tree
Hide file tree
Showing 8 changed files with 211 additions and 17 deletions.
19 changes: 19 additions & 0 deletions code/docker/jenkins/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
FROM jenkins/jenkins:2.426.2-jdk17

## 设置管理用户
USER root

## 安装核心依赖
RUN apt-get update && apt-get install -y lsb-release
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \
https://download.docker.com/linux/debian/gpg
RUN echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \
https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
RUN apt-get update && apt-get install -y docker-ce-cli

USER jenkins

## 运行插件
RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
2 changes: 2 additions & 0 deletions code/docker/jenkins/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
## 构建自定义jenkins镜像
docker build -t jenkins .
32 changes: 32 additions & 0 deletions code/docker/jenkins/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
##
## 支持服务:
## - Jenkins 端口映射 8080(连接端口) 50000(管理端口)
##
##
## 运行指令:
## - 统一刷新启动 docker-compose up -d
## - 挂掉 docker-compose down
## - 重启 docker-compose restart
##
version: '3'
services:
jenkins:
image: jenkins/jenkins
container_name: jenkins
hostname: jenkins_dev
restart: unless-stopped
ports:
- "6080:8080"
- "6081:50000"
## 文件映射
volumes:
- /etc/localtime:/etc/localtime:ro
- $(pwd)/jenkins:/var/jenkins_home
## 支持容器内使用Mac本机docker服务
## - /usr/local/bin/docker:/usr/bin/docker
## - /var/run/docker.sock:/var/run/docker.sock
environment:
JENKINS_OPTS: "--prefix=/jenkins"
JENKINS_ARGS: "--prefix=/jenkins"
# 用户名
user: root
13 changes: 13 additions & 0 deletions code/docker/jenkins/docker.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## docker安装jenkins
docker run \
--name jenkins-blueocean \
--restart=on-failure \
-d \
--env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client \
--env DOCKER_TLS_VERIFY=1 \
--publish 8080:8080 \
--publish 50000:50000 \
--volume jenkins-data:/var/jenkins_home \
--volume jenkins-docker-certs:/certs/client:ro \
jenkins/jenkins
4 changes: 1 addition & 3 deletions docs/manuscripts/develop-skill/code-manager/CI-CD.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ jobs:
release_name: v${{ steps.releaseVersion.outputs.version }}
body: |
Release ${{ steps.releaseVersion.outputs.version }}
### Features
### Bug Fixes
Expand All @@ -154,8 +154,6 @@ jobs:
asset_path: ./JavaScriptCollection.zip
asset_name: JavaScriptCollection.zip
asset_content_type: application/zip


```

## 参考资料
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
158 changes: 144 additions & 14 deletions docs/manuscripts/develop-skill/code-manager/jenkins.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,148 @@ permalink: /manuscripts/develop-skill/code-manager/jenkins.html

# Jenkins

## 安装

Jenkins支持多种安装方式,不限于Mac系统、Linux系统,由于Docker容器技术的普及,这里更加推荐使用容器安装。
具体可以参考[官网安装说明](https://www.jenkins.io/doc/book/installing/)

### Mac系统

在Mac系统中,Jenkins的安装可以借助`brew`工具,例如:

```bash
## 安装
brew install jenkins-lts
## M1芯片添加arch -arm64 安装
arch -arm64 brew install jenkins-lts

## 启动
brew services start jenkins-lts
## 重启
brew services restart jenkins-lts
## 手动更新
brew upgrade jenkins-lts
```

### Linux系统

基于apt-get进行安装,`LTS`(长期支持)版本 每 12 周从常规版本流中选择一次作为该时间的稳定版本时期

```bash
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null

## 软件更新
sudo apt-get update
## 安装jenkins
sudo apt-get install jenkins
```

基于yum进行安装,安装`LTS`(长期支持)版本 ,每 12 周从常规版本流中选择一次作为该时间的稳定版本时期

```bash
sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

## 软件更新
sudo yum upgrade
## 安装jenkins需要的jdk
sudo yum install fontconfig java-17-openjdk
## 安装jenkins
sudo yum install jenkins
## 重新加载配置
sudo systemctl daemon-reload
```

在Linux系统中安装完成后,可以对jenkins服务进行管理,设置开机提供、维护服务状态等,例如:

```bash
## 设置开机重启
sudo systemctl enable jenkins
## 启动
sudo systemctl start jenkins
## 暂停
sudo systemctl stop jenkins
## 重启
sudo systemctl restart jenkins
## 查看服务状态
sudo systemctl status jenkins
```

### 容器安装

使用Docker安装,注意文件映射,执行命令:

@[code sh](@code/docker/jenkins/docker.sh)

使用Docker-Compose安装,配置如下:

@[code yaml](@code/docker/jenkins/docker-compose.yaml)

不论使用Docker还是Docker-Compose安装Jenkins服务,都会启动Jenkins容器服务,对于容器可以使用一些常用的命令进行管理,例如:

```bash
docker run \
-u root \
-d \
--name=jenkins-fix \
--restart=always \
-p 8082:8080 \
-p 50002:50000 \
-v /data/jenkins-fix/data/:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$HOME":/home \
jenkins/jenkins
```

对应docker-compose.yaml文件
## 启动
docker start jenkins
## 停止
docker stop jenkins
## 重启
docker restart jenkins
## 查看容器信息
docker inspect jenkins
## 查看容器日志
docker logs jenkins

## 集群管理
docker-compose up -d
docker-compose down
docker-compose start jenkins
```

除了使用官方提供的jenkins镜像,还可以自定义镜像,这个在jenkins官网有详细说明,
这里基于jenkins镜像构建的核心功能提供对应的`Dockerfile`配置。 自定义jenkins镜像可以基于此来拓展,参考:

@[code dockerfile](@code/docker/jenkins/Dockerfile)

配置完成后,可以使用`docker build`命令构建,例如:

@[code sh](@code/docker/jenkins/build.sh)

## 使用

当Jenkins服务正常启动后,Jenkins默认暴露`8080``50000`两个端口,在浏览器中访问<http://127.0.0.1:8080即可Jenkins网站>
> 这里需要明白,Jenkins的端口也可以自定义或者进行端口映射
![浏览器访问Jenkins](./images/jenkins-lock.png)

按照提示到目标路径下,找对对应的初始化密码,粘贴到输入框中就可以顺利使用Jenkins啦

![打印初始化密码](./images/jenkins-cat-pwd.png)

如果是本机部署,在终端中执行命令,打印密码

```shell
## 对应
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
```

如果是Docker容器部署,需要进入容器找到对应文件,打印密码。例如:

```shell
## 进入容器
docker exec -it jenkins sh
## 打印密码
cat /var/jenkins_home/secrets/initialAdminPassword
## 退出容器
exit
```

上面的命令也可以精简为:

```sh
sudo docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
```

0 comments on commit 5855015

Please sign in to comment.