Skip to content
SRE运维进阶之路SRE运维进阶之路
github icon
  • Jenkins

    • Jenkins 学习笔记
      • 1 Jenkins 简介

        • 1.1 DevOps、CI、CD都是什么鬼?
          • 1.2 Jenkins简介
          • 2 安装 Jenkins

            • 2.1 yum 安装 jenkins
              • 2.2 war 包安装 jenkins
                • 2.3 使用 ansible 安装 jenkins
                  • 2.4 使用docker安装jenkins
                    • 安装配置docker
                      • 安装配置nginx
                        • 安装配置jenkins
                      • 3 使用 Jenkins

                        • 3.1 Jenkins用户权限管理
                          • 3.2 访问 API
                          • 4 流水线核心语法

                            • 4.1 开始编写Jenkinsfile
                              • 4.2 Jenkins流水线语法
                                • 4.3 Groovy 简明教程
                                  • 4.4 Jenkins共享库应用
                                    • 4.5 共享库之钉钉消息推送
                                      • 4.6 流水线开发工具
                                        • 4.7 pipeline 生产配置实例
                                          • 4.8 在 VS Code 中校验 Jenkinsfile
                                          • 5 流水线集成篇

                                            • 5.1 构建发布工具集成
                                              • 5.2 用户认证系统集成
                                              • 6 管理 jenkins

                                                • 6.1 Jenkins 关闭和重启的实现方式
                                                • 7 日常维护

                                                  • 7.1 Jenkins Job迁移
                                                  • 8 Jenkins 常见问题
                                                  • Ansible

                                                    • Ansible 学习笔记
                                                      • 1 初识Ansible
                                                        • 2 Ansible Inventory配置详解
                                                          • 3 Ansible Ad-hoc命令集

                                                            • 3.1 Ansible Ad-hoc 常用命令集
                                                              • 3.2 Ansible lineinfile模块详解
                                                              • 4 Ansible Playbook

                                                                • 4.1 Playbook的结构及handler用法
                                                                  • 4.2 Playbook循环语句
                                                                    • 4.3 Playbook条件语句
                                                                      • 4.4 Playbook高级用法
                                                                        • 4.5 Playbook之tags
                                                                          • 4.6 巧用Roles
                                                                            • 4.7 Jinja2 模板
                                                                              • 4.8 yaml语法
                                                                              • 5 Ansible变量

                                                                                • 5.1 自定义变量
                                                                                  • 5.2 Fact变量
                                                                                    • 5.3 魔法变量
                                                                                      • 5.4 使用lookup生成变量
                                                                                        • 5.5 使用vault配置加密
                                                                                        • 6 Ansible使用优化
                                                                                          • 7 常见问题
                                                                                            • 8 综合项目

                                                                                              • 使用 ansible 快速安装 k8s 机器

                                                                                            2.4 使用docker安装jenkins

                                                                                            author iconClaycalendar icon2021年6月2日category icon
                                                                                            • 自动化工具
                                                                                            tag icon
                                                                                            • Jenkins
                                                                                            timer icon大约 2 分钟

                                                                                            此页内容
                                                                                            • 安装配置docker
                                                                                            • 安装配置nginx
                                                                                            • 安装配置jenkins

                                                                                            # 2.4 使用docker安装jenkins

                                                                                            # 安装配置docker

                                                                                            1. 更换yum源,如果本来就是国内源,无需更换

                                                                                              curl -fsSL "https://gitee.com/clay-wangzhi/shell/raw/master/repo_replace.sh" | bash
                                                                                              
                                                                                              1
                                                                                            2. 安装配置Docker

                                                                                              使用官方脚本安装 Docker

                                                                                              curl -fsSL "https://get.docker.com/" | bash -s -- --mirror Aliyun
                                                                                              
                                                                                              1

                                                                                              加载br_netfilter

                                                                                              modprobe br_netfilter
                                                                                              
                                                                                              1

                                                                                              设置下系统内核参数

                                                                                              cat<<EOF > /etc/sysctl.d/docker.conf
                                                                                              # 要求iptables不对bridge的数据进行处理
                                                                                              net.bridge.bridge-nf-call-ip6tables = 1
                                                                                              net.bridge.bridge-nf-call-iptables = 1
                                                                                              net.bridge.bridge-nf-call-arptables = 1
                                                                                              # 开启转发
                                                                                              net.ipv4.ip_forward = 1
                                                                                              EOF
                                                                                              sysctl -p /etc/sysctl.d/docker.conf
                                                                                              
                                                                                              1
                                                                                              2
                                                                                              3
                                                                                              4
                                                                                              5
                                                                                              6
                                                                                              7
                                                                                              8
                                                                                              9

                                                                                              ⚠️ 慎用sysctl --system命令,如果参数在不同文件中设置,会有优先级问题,目前看来/etc/sysctl.conf的优先级最高

                                                                                              配置docker镜像加速器

                                                                                              curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
                                                                                              
                                                                                              1

                                                                                              启动docker服务并加入开机自启

                                                                                              systemctl enable docker && systemctl start docker
                                                                                              
                                                                                              1

                                                                                            # 安装配置nginx

                                                                                            1. 新增nginx yum源

                                                                                              To set up the yum repository, create the file named /etc/yum.repos.d/nginx.repo with the following contents:

                                                                                              [nginx-stable]
                                                                                              name=nginx stable repo
                                                                                              baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
                                                                                              gpgcheck=1
                                                                                              enabled=1
                                                                                              gpgkey=https://nginx.org/keys/nginx_signing.key
                                                                                              module_hotfixes=true
                                                                                              
                                                                                              [nginx-mainline]
                                                                                              name=nginx mainline repo
                                                                                              baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
                                                                                              gpgcheck=1
                                                                                              enabled=0
                                                                                              gpgkey=https://nginx.org/keys/nginx_signing.key
                                                                                              module_hotfixes=true
                                                                                              
                                                                                              1
                                                                                              2
                                                                                              3
                                                                                              4
                                                                                              5
                                                                                              6
                                                                                              7
                                                                                              8
                                                                                              9
                                                                                              10
                                                                                              11
                                                                                              12
                                                                                              13
                                                                                              14
                                                                                              15
                                                                                            2. 安装&&启动nginx

                                                                                              yum -y install nginx
                                                                                              nginx
                                                                                              
                                                                                              1
                                                                                              2
                                                                                            3. 配置hosts解析

                                                                                              echo "127.0.0.1 www.google.com" >> /etc/hosts
                                                                                              
                                                                                              1

                                                                                            # 安装配置jenkins

                                                                                            ⚠️ 执行此步骤前,需要先安装配置nginx,在container启动时network设置为host时,我更新主机的hosts文件后,发现容器内的hosts文件没有更新,当前docker版本为20.10.6

                                                                                            1. 下载jenkins镜像

                                                                                              docker pull jenkinsci/blueocean:1.24.6
                                                                                              
                                                                                              1
                                                                                            2. 创建挂载目录

                                                                                              mkdir -p /opt/jenkins-data
                                                                                              
                                                                                              1
                                                                                            3. 创建并启动jenkins

                                                                                              docker run -u root --rm -d -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai --mount type=bind,source=/opt/jenkins-data,target=/var/jenkins_home --network=host --name jenkins jenkinsci/blueocean:1.24.6
                                                                                              
                                                                                              1
                                                                                            4. 剩下的步骤按着提示完成就行,安装配置nginx的原因如下:

                                                                                              输入密码后第二步报”该Jenkins实例似乎已离线“,网上搜方案有两种:

                                                                                              1)更改插件下载源,具体步骤如下:

                                                                                              # 进入http://ip:8080/jenkins/pluginManager/advanced
                                                                                              # 将最下面的 Update Site 的 URL 地址替换成:http://mirror.esuni.jp/jenkins/updates/update-center.json
                                                                                              # 点“submit”按钮,然后点右下角角 “check now”
                                                                                              # 然后输入地址 http://ip:8080/jenkins/restart 重启 jenkins 后再重新安装插件
                                                                                              
                                                                                              1
                                                                                              2
                                                                                              3
                                                                                              4

                                                                                              2)修改 /var/lib/jenkins/updates/default.json 文件中的 connectionCheckUrl 项值为国内可访问的地址。

                                                                                              经实验,两种方式都不能保证100% 初始化成功

                                                                                              方法一更新的是插件的下载源,但是我还没开始下载插件,只是下载插件前的检查网络;

                                                                                              方法二重启jenkins又被重置为谷歌域名。

                                                                                              考虑connectionCheckUrl 只是用来安装插件时检查网络是否ping通,因此直接在本机上给www.google.com 指向到本地,再给配一个nginx 响应即可

                                                                                            edit icon编辑此页open in new window
                                                                                            上次编辑于: 2022/4/27 15:33:00
                                                                                            贡献者: clay-wangzhi
                                                                                            上一页
                                                                                            2.3 使用 ansible 安装 jenkins
                                                                                            备案号:冀ICP备2021007336号
                                                                                            Copyright © 2023 Clay