一、持续集成流程说明

jenkins 配置连接ssh jenkins ssh git_git

  • 首先,开发人员每天进行代码提交,提交到Git仓库
  • 然后,Jenkins作为持续集成工具,使用Git工具到仓库拉去代码到集成服务器,再配合JDK,Maven等软件完成代码编译,代码测试和审查,测试,打包等工作,在这个过程中每一步出错,都需要重新再执行一次整个流程。
  • 最后,Jenkins把生成的jar和war包分发到测试服务器或者生成服务器,测试人员或用户就可以访问使用。

二、Gitlab代码托管服务器的部署

2.1、安装相关依赖

yum -y install policycoreutils openssh-server openssh-clients postfix

2.2、启动ssh服务&设置为开机启动

systemctl enable sshd && systemctl start sshd

2.3、设置postfix开机启动和开机自启

postfix支持gitlab发信功能

systemctl enable postfix && systemctl start postfix

2.4、防火墙开放ssh以及http服务

firewall-cmd --add-serice=ssh --permanent
firewall-cmd --add-serice=http --permanent
firewall-cmd --reload

2.5、下载gitlab并安装

在线下载安装包,建议到国内的镜像源去下载,这里推荐清华园的:
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.1.6-ce.0.el7.x86_64.rpm

2.6、安装rpm包

rpm -ivh gitlab-ce-11.1.6-ce.0.el7.x86_64.rpm

2.7、修改配置文件gitlab.rb

## GitLab configuration settings
##! This file is generated during initial installation and **is not** modified
##! during upgrades.
##! Check out the latest version of this file to know about the different
##! settings that can be configured by this file, which may be found at:
##! https://gitlab.com/gitlab-org/omnibus-gitlab/raw/master/files/gitlab-config-template/gitlab.rb.template
 
 
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
#external_url 'http://gitlab.example.com'
external_url 'http://10.10.30.1'        # 修改这个地方

如果你需要更改端口,则需要更改:

10.10.30.1:82

还需要更改配置中的如下:

nginx[ 'listen_port' ]= 82

这个选项默认是注释的,需要放开

jenkins 配置连接ssh jenkins ssh git_git_02

2.8、重新加载配置文件

gitlab-ctl reconfigure
gitlab-ctl restart

2.9、查看gitlab版本

head -1 /opt/gitlab/version-manifest.txt

三、Jenkins的安装部署

3.1 安装openjdk

Jenkins需要依赖JDK,所以先安装JDK1.8。在这里有个坑,对于一个初学者来说。老师你给我说JDK1.8我一脸懵逼,我只听过JDK8/9/10…从来就没听说过狗屁1.8,百度找了半天原来是openjdk

如果你想知道更多关于openjdk的信息,请查阅以下地址:

yum -y install java-1.8.0-openjdk*

安装目录为:/usr/lib/jvm

3.2 下载Jenkins并安装

这里我们采用国内清华镜像下载

wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.190.3-1.1.noarch.rpm
rpm -ivh jenkins-2.190.3-1.1.noarch.rpm

修改配置文件

vim /etc/sysconfig/jenkins
修改
JENKINS_USER="root"
JENKINS_PORT="8888"

启动Jenkins

systemctl start jenkins

浏览器访问

访问地址:10.10.30.2:8888

注意打开之后这里有个初始化的过程需要等待一会

jenkins 配置连接ssh jenkins ssh git_jenkins 配置连接ssh_03

然后就会出现下面的界面:

jenkins 配置连接ssh jenkins ssh git_jenkins 配置连接ssh_04

查看密码

[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
74d25c29aabc41a38195f197de86d9f2

复制到浏览器的管理员密码框内,点击继续。

在这里出现了一片白的状态

jenkins 配置连接ssh jenkins ssh git_git_05

我们可以从浏览器复制一个标签,然后就会出现内容:

jenkins 配置连接ssh jenkins ssh git_docker_06

在这里我们选择:选择插件来安装

jenkins 配置连接ssh jenkins ssh git_Jenkins_07

jenkins 配置连接ssh jenkins ssh git_Jenkins_08

jenkins 配置连接ssh jenkins ssh git_jenkins 配置连接ssh_09

jenkins 配置连接ssh jenkins ssh git_git_10

到此就部署成功了。

3.3 Jenkins插件的安装

Jenkins——Manage Jenkins——Manage Piugins ,点击Available

我们先安装中文插件:

Localization: Chinese (Simplified)

jenkins 配置连接ssh jenkins ssh git_jenkins 配置连接ssh_11

完成之后要重启,在下图箭头处勾选会自动重启。

jenkins 配置连接ssh jenkins ssh git_Jenkins_12

重启后需要重新登录,默认的账户是admin,密码还是上面查看的密码。下面是查看密码:

[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword

3.4 Jenkins更改国内插件地址

待写

3.5docker部署jenkins

除了以上的部署方法,还可以利用docker进行部署。daoker的部署比较简单。

  • 默认拉取的jenkins是老版本,会产生插件不能用的错误(https://hub.docker.com/_/jenkins)
  • 拉取新版的jenkins(https://hub.docker.com/r/jenkins/jenkins)
docker pull jenkins/jenkins

或者

docker run -d -u root --name jenkins --privileged=true \
    -p 8080:8080 -p 50000:50000 \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v $(which docker):/usr/bin/docker \
    -v /etc/sysconfig/docker:/etc/sysconfig/docker \
    -v /usr/bin/docker-current:/usr/bin/docker-current \
    -v /var/jenkins_home:/var/jenkins_home jenkins/jenkins
  • -p 指定暴露的端口,8080用于对外暴露服务,而50000适用于Jenkins slave的注册
  • 第一种 -v 指定挂载的jenkins home中的内容到本地
  • 第二种 -v 用于将本地的docker挂载到容器中,实现在容器中使用docker命令
  • 其中 -u root 获得docker容器里面的root权限,不然后期jenkins容器没有权限使用docker命令

四、Jenkins用户权限的管理

在我们开发过程中,有很多用户需要登录到Jenkins中来。那么我们可能需要针对不同用户授予不同的角色和权限。

Jenkins本身对角色和权限的管理比较单一粗略,我们需要通过安装Role-based Authorization Strategy插件来实现细致化的权限管理。

jenkins 配置连接ssh jenkins ssh git_jenkins 配置连接ssh_13

重启之后我们来到:

jenkins 配置连接ssh jenkins ssh git_docker_14

jenkins 配置连接ssh jenkins ssh git_Jenkins_15