内容简介:之前说过各家公司的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
Jenkins
java编写的开源的工具,jenkins比较灵活,可以通过插件的方式,添加所需要的插件,除了扩展性还支持多台机器的分布式构建,jenkins的用户群很庞大,可以说是目前最主流的部署工具。
梳理流程git+jenkins+k8s
- 客户端发起代码push到gitlab上
- gitlab配置了webhook的东西,它可以出发jenkins的构建
- jenkins做的事情就比较多
3.1 构建代码
3.2 静态分析
3.3 单元测试
3.4 build镜像
3.5 推送push镜像仓库
3.6 调用k8s的api - k8s拉取镜像仓库的进行部署。
GitLab安装(101这台主机)
源码中server01
- 下载镜像
$ docker pull gitlab/gitlab-ce:latest
- 运行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
- 运行start.sh 启动gitlab
sh start.sh
-
配置环境
> 修改host文件,使域名可以正常解析
> 192.168.66.101 gitlab.idig8.com
-
修改ssh端口(如果主机端口使用的不是22端口)
> 修改文件:${GITLAB_DIR}/config/gitlab.rb
> 找到这一行:# gitlab_rails[‘gitlab_shell_ssh_port’] = 22
> 把22修改为你的宿主机端口(这里是2222)。然后将注释去掉。
- 重新启动容器
sh start.sh
GitLab试用
地址:http://gitlab.idig8.com:8080/
-
设置管理员密码
>首先根据提示输入管理员密码,这个密码是管理员用户的密码。对应的用户名是root,用于以管理员身份登录Gitlab。
-
创建账号
设置好密码后去注册一个普通账号
-
创建项目
注册成功后会跳到首页,我们创建一个项目,名字大家随意
-
添加ssh key
>项目建好了,我们加一个ssh key,以后本地pull/push就简单啦
首先去到添加ssh key的页面
然后拿到我们的sshkey 贴到框框里就行啦
怎么拿到呢?看下面:
#先看看是不是已经有啦,如果有内容就直接copy贴过去就行啦 cat ~/.ssh/id_rsa.pub #如果上一步没有这个文件 我们就创建一个,运行下面命令(邮箱改成自己的哦),一路回车就好了 ssh-keygen -t rsa -C "394498036@qq.com" cat ~/.ssh/id_rsa.pub
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
Jenkins安装(102这台主机)
源码中server02
- 下载镜像
docker pull stephenreed/jenkins-java8-maven-git
- 运行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
- 运行startJenkins.sh 启动gitlab
sh startJenkins.sh
-
配置环境
> 修改host文件,使域名可以正常解析
> 192.168.66.102 jenkins.idig8.com
- 查看初始化秘钥
docker ps docker exec -it f3111725cd64 /bin/bash cat /var/jenkins_home/secrets/initialAdminPassword
页面输入刚才的秘钥
- 选择插件
其他默认,Pipelines全选
涉及到跨域,需要关闭,系统管理-全局安全
PS:可能有的插件安装不了,不要慌老铁,进入到jenkins的管理页面会提示你更新jenkins更新下,然后插件又可以自动下载安装完毕了。
>>原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
>>原文链接地址:上一篇:已是最新文章
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Golang入门:从安装、部署以及GoLand的安装开始
- Win2016上安装SFB2015先决条件安装失败:RewriteModule
- mac:Go安装和配置+GoLand安装和使用之完整教程
- Pulsar本地单机(伪)集群 (裸机安装与docker方式安装) 2.2.0
- 如何将Rancher 2.1.x 从单节点安装迁移到高可用安装
- (教科书式教程!)在VMware Workstation 14 上安装CentOS 7 【送安装包】
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!