使用gitlab, jenkins搭建CI(持续集成)系统(1) -- 准备环境

1. 环境设计java

    搭建一个从开发到测试知道发布上线能够自动换完成的CI系统。这个系统中包含4个环境。git

  开发(dev)环境: 码农使用。github

  测试(test)环境: 测试人员使用。spring

  预发布(prepublish)环境: 预发布环境,用于上线前的最后验证。centos

      正式(realpublish)环境: 正式上线运行环境浏览器

  

  我指望的效果是这样的:springboot

  代码推送到master分支,自动构建、部署到devbash

  代码推送到test分支, 自动构建、部署到testmvc

  test上测试经过后,在jenkins中手动触发relase分支构建, jenkins自动将test分支代码合并到release上, 而后构建、部署到prepublishssh

      prepublish验证经过后,在jenkins中手动触发publish构建,使用release分支代码, 构建、部署到publish

      以上步骤中,在不一样的环境中自动使用不一样的配置。

 

2. 环境准备

  操做系统:centos7

  用虚拟机虚拟出5个主机:

  192.168.1.35: gitlab

  192.168.1.36: jenkins

  192.168.1.41: dev环境

  192.168.1.42: test环境

  192.168.1.43, 192.168.1.44 prepublish 环境

  192.168.1.45,192.168.1.46   realpublish环境    

 

  2.1 安装gitlab, 建立实验用的project

  在192.168.1.35上安装gitlab, 这个主机须要配置至少4G内存,不然gitlab会很慢。

  具体安装过程参考:https://about.gitlab.com/installation/#centos-7

  第一步:

  curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

  第二步: 

  sudo EXTERNAL_URL="http://192.168.1.35" yum install -y gitlab-ce

 

  完成以后gitlab将会在192.168.1.35 提供服务

  

  打开浏览器输入: http://1192.168.1.35

  第一次进入初始化root帐号

  建立一个用于建立project的帐号

  至此,gitlab环境就准备好了。

 

  2.2 安装配置jenkins

  在192.168.1.36上运行jenkins

  安装jdk8

  下载jenkins:  http://mirrors.jenkins.io/war-stable/latest/jenkins.war

  将jenkins.war放在 /root/jenkins中

  启动jenkins

  cd /root/jenkins

  ./java -jar jenkins.war --httpPort=80

  打开浏览器输入192.168.1.36登陆jenkins。第一次进入会要求安装默认的plugin, 安装完成以后, 建立一个管理员帐号,而后用这个管理帐号从新登陆。

  系统管理 - 管理插件 - 可选插件  选择gitlab相关插件进行安装:

  GitLab Plugin

  Gitlab Hook Plugin

      
  2.3 建立实验project
  
  在gitlab中建立一个group: examples

建立一个用于实验的project: example-springbootmvc。 我在github上有这个用于实验的project: https://github.com/brandonlyg/examples-springbootmvc.git。能够clone下来,导入到gitlab中。使这个project在gitlab中个url是 git@192.168.1.35:examples/example-springbootmvc.git

   

  2.4 让jenkins所在的主机能够免密码登陆到其余的主机上

  生成ssh key

  ssh-keygen

  将公钥copy目标主机上,而后ssh登陆异常

  ssh-copy-id root@192.168.1.41

  ssh root@192.168.1.41

  重复这两个步骤,配置好42, 43, 44, 45, 46这几个主机。