『高级篇』docker之gitlab和jenkins安装(42)

栏目: Java · 发布时间: 5年前

内容简介:之前说过各家公司的CICD落地方案不同,五花八门,之前说过java的微服务,k8s的集群环境,在这位基础,包括代码的编译,代码的提交,单元测试服务的发布,关键的节点自动化起来。源码:https://github.com/limingios/msA-docker/vagrant master分支CICDjava编写的开源的工具,jenkins比较灵活,可以通过插件的方式,添加所需要的插件,除了扩展性还支持多台机器的分布式构建,jenkins的用户群很庞大,可以说是目前最主流的部署工具。

之前说过各家公司的CICD落地方案不同,五花八门,之前说过 java 的微服务,k8s的集群环境,在这位基础,包括代码的编译,代码的提交,单元测试服务的发布,关键的节点自动化起来。源码:https://github.com/limingios/msA-docker/vagrant master分支CICD

『高级篇』docker之gitlab和jenkins安装(42)

Jenkins

java编写的开源的工具,jenkins比较灵活,可以通过插件的方式,添加所需要的插件,除了扩展性还支持多台机器的分布式构建,jenkins的用户群很庞大,可以说是目前最主流的部署工具。

梳理流程git+jenkins+k8s

  1. 客户端发起代码push到gitlab上
  2. gitlab配置了webhook的东西,它可以出发jenkins的构建
  3. jenkins做的事情就比较多
    3.1 构建代码
    3.2 静态分析
    3.3 单元测试
    3.4 build镜像
    3.5 推送push镜像仓库
    3.6 调用k8s的api
  4. k8s拉取镜像仓库的进行部署。

GitLab安装(101这台主机)

源码中server01

  • 下载镜像
$ docker pull gitlab/gitlab-ce:latest

『高级篇』docker之gitlab和jenkins安装(42)

  • 运行GitLab容器

使用 docker 命令运行容器,注意修改hostname为自己喜欢的名字,-v部分挂载目录要修改为自己的目录。

端口映射这里使用的都是安全端口,如果大家的环境没有端口限制或冲突可以使用与容器同端口,如:-p 443:443 -p 80:80 -p 22:22

* 生成启动文件 – start.sh

cat <<EOF > start.sh
#!/bin/bash
HOST_NAME=gitlab.idig8.com
GITLAB_DIR=`pwd`
docker stop gitlab
docker rm gitlab
docker run -d \\
    --hostname \${HOST_NAME} \\
    -p 8443:443 -p 8080:80 -p 2222:22 \\
    --name gitlab \\
    -v \${GITLAB_DIR}/config:/etc/gitlab \\
    -v \${GITLAB_DIR}/logs:/var/log/gitlab \\
    -v \${GITLAB_DIR}/data:/var/opt/gitlab \\
    gitlab/gitlab-ce:latest
EOF

『高级篇』docker之gitlab和jenkins安装(42)

  • 运行start.sh 启动gitlab
sh start.sh

『高级篇』docker之gitlab和jenkins安装(42)

  • 配置环境

    > 修改host文件,使域名可以正常解析

    > 192.168.66.101 gitlab.idig8.com

『高级篇』docker之gitlab和jenkins安装(42)

  • 修改ssh端口(如果主机端口使用的不是22端口)

    > 修改文件:${GITLAB_DIR}/config/gitlab.rb

    > 找到这一行:# gitlab_rails[‘gitlab_shell_ssh_port’] = 22

    > 把22修改为你的宿主机端口(这里是2222)。然后将注释去掉。

『高级篇』docker之gitlab和jenkins安装(42)

  • 重新启动容器
sh start.sh

『高级篇』docker之gitlab和jenkins安装(42)

GitLab试用

地址:http://gitlab.idig8.com:8080/

  • 设置管理员密码

    >首先根据提示输入管理员密码,这个密码是管理员用户的密码。对应的用户名是root,用于以管理员身份登录Gitlab。

『高级篇』docker之gitlab和jenkins安装(42)

  • 创建账号

    设置好密码后去注册一个普通账号

『高级篇』docker之gitlab和jenkins安装(42)

  • 创建项目

    注册成功后会跳到首页,我们创建一个项目,名字大家随意

    『高级篇』docker之gitlab和jenkins安装(42)

『高级篇』docker之gitlab和jenkins安装(42)

  • 添加ssh key

    >项目建好了,我们加一个ssh key,以后本地pull/push就简单啦

『高级篇』docker之gitlab和jenkins安装(42)

首先去到添加ssh key的页面

『高级篇』docker之gitlab和jenkins安装(42)

然后拿到我们的sshkey 贴到框框里就行啦

怎么拿到呢?看下面:

#先看看是不是已经有啦,如果有内容就直接copy贴过去就行啦
cat ~/.ssh/id_rsa.pub

#如果上一步没有这个文件 我们就创建一个,运行下面命令(邮箱改成自己的哦),一路回车就好了
ssh-keygen -t rsa -C "394498036@qq.com"
cat ~/.ssh/id_rsa.pub

『高级篇』docker之gitlab和jenkins安装(42)

『高级篇』docker之gitlab和jenkins安装(42)

PS:目的是本地push的时候没有权限问题,方便直接提交代码到gitlab上。

  • 测试一下

    点开我们刚创建的项目,复制ssh的地址

添加个文件试试(我的项目叫microservice)

#clone代码
cd existing_folder
git init
git remote add origin ssh://git@gitlab.idig8.com:2222/liming/microservice.git
git add .
git commit -m "Initial commit"
git push -u origin master

『高级篇』docker之gitlab和jenkins安装(42)

『高级篇』docker之gitlab和jenkins安装(42)

『高级篇』docker之gitlab和jenkins安装(42)

『高级篇』docker之gitlab和jenkins安装(42)

Jenkins安装(102这台主机)

源码中server02

  • 下载镜像
docker pull stephenreed/jenkins-java8-maven-git

『高级篇』docker之gitlab和jenkins安装(42)

  • 运行Jenkins容器

使用docker命令运行容器,注意修改hostname为自己喜欢的名字,-v部分挂载目录要修改为自己的目录。

端口映射这里使用的都是安全端口,如果大家的环境没有端口限制或冲突可以使用与容器同端口,如:-p 443:443 -p 80:80 -p 22:22

* 生成启动文件 – startJenkins.sh

cat <<EOF > startJenkins.sh
#!/bin/bash
HOST_NAME=jenkins.idig8.com
GITLAB_DIR=/root
docker stop jenkins
docker rm jenkins
docker run -d \
    --hostname ${HOST_NAME} \
    -p 8888:8080 -p 50000:50000 \
    --name jenkins \
    -v ${GITLAB_DIR}/jenkins/:/etc/localtime:ro \
    -P stephenreed/jenkins-java8-maven-git
EOF

『高级篇』docker之gitlab和jenkins安装(42)

  • 运行startJenkins.sh 启动gitlab
sh startJenkins.sh

『高级篇』docker之gitlab和jenkins安装(42)

  • 配置环境

    > 修改host文件,使域名可以正常解析

    > 192.168.66.102 jenkins.idig8.com

『高级篇』docker之gitlab和jenkins安装(42)

  • 查看初始化秘钥
docker ps 
docker exec -it f3111725cd64 /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword

『高级篇』docker之gitlab和jenkins安装(42)

页面输入刚才的秘钥

『高级篇』docker之gitlab和jenkins安装(42)

  • 选择插件

『高级篇』docker之gitlab和jenkins安装(42)

其他默认,Pipelines全选

『高级篇』docker之gitlab和jenkins安装(42)

『高级篇』docker之gitlab和jenkins安装(42)

『高级篇』docker之gitlab和jenkins安装(42)

『高级篇』docker之gitlab和jenkins安装(42)

涉及到跨域,需要关闭,系统管理-全局安全

『高级篇』docker之gitlab和jenkins安装(42)

PS:可能有的插件安装不了,不要慌老铁,进入到jenkins的管理页面会提示你更新jenkins更新下,然后插件又可以自动下载安装完毕了。

百度未收录

>>原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!

>>原文链接地址:上一篇:

已是最新文章


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Domain-Driven Design Distilled

Domain-Driven Design Distilled

Vaughn Vernon / Addison-Wesley Professional / 2016-6-2 / USD 36.99

Domain-Driven Design (DDD) software modeling delivers powerful results in practice, not just in theory, which is why developers worldwide are rapidly moving to adopt it. Now, for the first time, there......一起来看看 《Domain-Driven Design Distilled》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

MD5 加密
MD5 加密

MD5 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具