Linux Docker+Jenkins部署

Linux Docker+Jenkins部署

1. Docker安装Jenkins过程

  1. 首先拉取镜像: docker pull jenkins (我安装的是Jenkins 2.275)
  2. 创建本地数据卷: mkdir -p /data/jenkins_home/
  3. 修改用户授权: chown -R 1000:1000 /data/jenkins_home/
  4. 启动容 器: docker run -d --name jenkins -p 7900:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.soc
    1. 这里挂载了物理盘映射
    2. 还挂载了docker映射
  5. 访问对应网址: xxx:7900
  6. 获取初始管理员密码(两种方式,因为映射了本地逻辑卷)
    1. docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
    2. 或者在进入容器后( docker exec -it jenkins /bin/bash ): cat /data/jenkins_home/secrets/initialAdminPassword
  7. 选择安装推荐的插件等待即可 8.
  8. 按照流程创建管理员账户
  9. 根据之前的情况创建实例,即完成

2. Jenkins流水线 + Docker + Maven + Github webhooks + Spring boot

2.1. 需要的插件和配置
2.1.1. 插件
  1. Blue Ocean

  2. Maven Integration

2.1.2. 配置
  1. 查看容器的全部信息: docker inspect jenkins ,其中的Env项中包含了 JAVA_HOME 等环境信息,如下所示

  2. 进行全局工具配置: Jenkins -> 系统管理 -> 全局工具管理

  3. jdk配置,如果没有自动安装,如果有则使用上面的JAVA_HOME地址即可

在这里插入图片描述

  1. Git配置

在这里插入图片描述

  1. Docker配置

在这里插入图片描述

2.1.3. 安装maven
  1. 同样的进入容器: docker exec -it -u root jenkins bash

  2. 下载maven压缩包: wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

  3. 解压缩maven安装包:

    tar -zvxf apache-maven-3.6.3-bin.tar.gz

  4. 配置环境变量:

    vi /etc/profile (安装vi: apt-get install vi )

    export MAVEN_HOME=/opt/apache-maven-3.6.3 export MAVEN_HOME

    export PATH= P A T H : PATH: PATH:MAVEN_HOME/bin

  5. 编辑maven的 settings.xml 来替换源(位置 conf/ 下),在 标签内添加一下任意一个

<mirror> 
  <id>huaweicloud</id> 
  <mirrorOf>*,!HuaweiCloudSDK</mirrorOf> 
  <url>https://mirrors.huaweicloud.com/repository/maven/</url> 
</mirror> 

<mirror> 
  <id>aliyun</id>
  <name>aliyun Maven</name> 
  <mirrorOf>*,!HuaweiCloudSDK</mirrorOf> 
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
</mirror> 
  1. 刷新权限: source /etc/profile
  2. 然后在 Jenkins -> 系统管理 -> 全局工具管理 继续进行Maven配置

在这里插入图片描述

2.1.4. 配置Jenkins使用Docker
  1. 之前在创建容器的时候已经完成了sock的映射

  2. 登录进入jenkins容器: docker exec -it -u root jenkins bash

  3. 安装docker client:

apt-get update && \
apt-get -y install apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common && \
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey && \
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) \
stable" && \
apt-get update && \
apt-get -y install docker-ce
  1. 通过输入 docker 来检查是否成功

  2. 授予jenkins用户docker权限:

    1. 以root用户身份进入jenkins容器: docker exec -it -u root jenkins /bin/bash
    2. 查看当前用户情况: ls -l /var/run/docker.sock
    3. 授权 jenkins 用户: chown jenkins: /var/run/docker.sock
    4. 再次查看用户情况: ls -l /var/run/docker.sock
    5. 检查 docker ps 之类的命令是否可以使用
2.1.5. 配置Jenkins中的Git SSH
  1. 进入jenkins容器: docker exec -it jenkins /bin/bash

  2. 生成SSH密钥: ssh-keygen ,一路回车使用默认值

  3. 查找密钥: cat /var/jenkins_home/.ssh/id_rsa.pub

  4. 然后登录Github,在 settings->SSH and GPG keys 中添加密钥。

2.1.6. Github添加Webhook
  1. 进入想要部署的仓库, settings -> webhook ,选择 Add Webhook

  2. 设置payload_url为jenkins对应地址: xxx(jenkins访问网址)/github-webhook/

  3. 选择 Just the push event. 和 Active 后保存即可

2.1.7. 配置主从节点

避免出现如下报错:pending—Waiting for next available executor

  1. 进入对应位置: 系统管理 -> 节点管理

  2. 点击 配置主从节点 ,设置至少为2个。

在这里插入图片描述

2.2. 使用流水线新建任务
  1. 点击 新建任务 ,新建一个名为 Jenkins-Demo 的流水线任务

在这里插入图片描述

  1. 构建触发器 选择 GitHub hook trigger for GITScm polling

在这里插入图片描述

  1. 流水线中( jenkinsfile 文件放置在仓库根目录下)

    1. 定义 选择 Pipeline script from SCM
    2. SCM 选择 Git
    3. Repository URL 输入对应仓库的 git@xxx.git 地址
  2. 如果出现报错如下,则先进入jenkins容器输入命令 git ls-remote -h – git@github.com:xxx.git HEAD :并输入 yes 确认

    无法连接仓库:Command "git ls-remote -h -- git@github.com:xxx.git HEAD" returned status code 128: stdout: stderr: Host key verification failed. fatal: Could not read from remote repository. 
    Please make sure you have the correct access rights and the repository exists 
    
  3. 后指定分支为 main ,整体如下图所示

在这里插入图片描述

  1. 之后选择保存即可

  2. 之后点击 立即构建 来查看效果

3. GitLab + Jenkins + Spring Boot

3.1. 配置GitLab插件和连接
  1. Jenkins需要安装插件GitLab Plugin和GitLab Hook Plugin

  2. 进入系统配置,找到GitLab的配置位置,进行配置

在这里插入图片描述

  1. 注意上面需要的API token需要到GitLab的用户设置中,生成Personal Access Tokens

  2. 填写完成后点击Test Connection,如果显示Success表示配置成功

  3. 完成GitLab的Ssh配置,过程完全类似第二大步中的对应步骤。

3.2. 创建项目
  1. 勾选Build when a change is pushed to GitLab. GitLab webhook URL:

  2. 下拉找到点击高级,找到Allowed branches,选择Filter branch by name(一般是master)

  3. 在下拉,来到流水线中,选择Pipeline script from SCM,URL填写GitLab获取的URL,进行测试(注意如果出现 git ls-remote -h – ssh://git@xxx.git HEAD ,第一次是需要进入容器执行该命令,并输入yes)

  4. 进入GitLab的对应项目仓库,找到settings->integration配置刚刚得到的webhook URL,然后点击Test(模拟一次Push events),如果返回为403码,则查看参考八

  5. 之后配置好jenkinsfile,然后跟踪构建结果即可。

4. 实用插件

  1. Jenkins嵌入到 Iframe

  2. Jenkins用户组管理

5. 配置Jenkins的分布式构建和部署

  1. jenkins分布式构建和部署(master-slave)

6. 参考

  1. Jenkins官方教程

  2. Docker 安装 Jenkins(超详细)

  3. Jenkins 插件安装失败解决办法

  4. Jenkins+Docker+github+Spring Boot自动化部署

  5. Jenkins容器中安装Docker

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值