欢迎您, 来到 宁时修博客.^_^

Jenkins自动化 持续集成01--Gitlab Jenkins安装

2018/11/08 言则行 Jenkins 514
Jenkins自动化 持续集成

一、测试环境

IP主机名用途
192.168.184.122jenkins部署Jenkins,拉取Gitlab上的代码,然后分发到WEB上。
192.168.184.123git部署Gitlab,存放代码。
192.168.184.124webWEB服务



二、gitlab快速安装

    1、安装依赖

yum install -y curl policycoreutils-python openssh-server postfix
systemctl enable postfix
systemctl start postfix


    2、添加gitlab软件包存储库

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


    3、安装gitlab

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

    将“http://192.168.184.123”更改为您要访问GitLab实例的URL。安装将自动配置并启动该URL的GitLab。

    gitlab-ce:社区版(免费)

    gitlab-ee:企业版(收费)

    yum install gitlab-ce            #自动安装最新版

    yum install gitlab-ce-x.x.x    #安装指定版本,如:gitlab-ce-11.4.5


    4、gitlab常用命令

gitlab-ctl start            # 启动所有 gitlab 组件;
gitlab-ctl stop             # 停止所有 gitlab 组件;
gitlab-ctl restart          # 重启所有 gitlab 组件;
gitlab-ctl status           # 查看服务状态;
gitlab-ctl reconfigure      # 启动服务,Configure and start GitLab;
vim /etc/gitlab/gitlab.rb   # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace    # 检查gitlab;
gitlab-ctl tail             # 查看日志;
[root@git ~]# gitlab-ctl start
ok: run: alertmanager: (pid 18754) 0s
ok: run: gitaly: (pid 18764) 1s
ok: run: gitlab-monitor: (pid 18776) 0s
ok: run: gitlab-workhorse: (pid 18780) 1s
ok: run: logrotate: (pid 18797) 0s
ok: run: nginx: (pid 18805) 1s
ok: run: node-exporter: (pid 18811) 0s
ok: run: postgres-exporter: (pid 18853) 0s
ok: run: postgresql: (pid 18896) 1s
ok: run: prometheus: (pid 18904) 0s
ok: run: redis: (pid 18914) 1s
ok: run: redis-exporter: (pid 18918) 0s
ok: run: sidekiq: (pid 18924) 1s
ok: run: unicorn: (pid 18931) 0s
[root@git ~]# gitlab-ctl stop
ok: down: alertmanager: 0s, normally up
ok: down: gitaly: 0s, normally up
ok: down: gitlab-monitor: 0s, normally up
ok: down: gitlab-workhorse: 0s, normally up
ok: down: logrotate: 0s, normally up
ok: down: nginx: 1s, normally up
ok: down: node-exporter: 0s, normally up
ok: down: postgres-exporter: 1s, normally up
ok: down: postgresql: 0s, normally up
ok: down: prometheus: 1s, normally up
ok: down: redis: 0s, normally up
ok: down: redis-exporter: 1s, normally up
ok: down: sidekiq: 0s, normally up
ok: down: unicorn: 0s, normally up

    GitLab包含了 Nginx,PostgreSQL数据库,Redis数据库、prometheus监控。


    5、gitlab登录

    浏览器输入URL:http://192.168.184.123

71100.png

    提示我们修改密码。然后以用户名:root,新设密码:xxxxxxx 登录Gitlab。


    6、在Gitlab主页创建一个project,待会测试用。

3646.png

83901.png


    7、注册一个专门用于发布的gitlab账户

4250.png


  

    8、将创建的用户deploy加入到 test01 项目,由项目创建者root授权

    点击项目名 test01,进入项目,点击Members可以添加人员,并设置权限。

714.png


185259.png

    

    Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master、Owner

        Guest:可以创建issue、发表评论,不能读写版本库

        Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限

        Developer:可以克隆代码、开发、提交、push,RD可以赋予这个权限

        Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限

        Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限


    Gitlab中的组和项目有三种访问权限:Private、Internal、Public

        Private:只有组成员才能看到

        Internal:只要登录的用户就能看到

        Public:所有人都能看到


    我们只需要拉取代码,授权reporter即可。



    9、随便在项目里写点html文件

    

8204326.png



三、Jenkins快速安装

    1、安装JDK

yum install -y java-1.8.0-openjdk


    2、安装Jenkins

# 导入jenkins源
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

# 导入jenkins官方证书
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

# 安装jenkins,安装的是最新的版本
yum install -y jenkins



    3、修改配置

vim /etc/sysconfig/jenkins
# 可以更改端口号等,默认端口号8080

    使用IP+端口号访问Jenkins。


    4、启动Jenkins

systemctl start jenkins


    5、登录Jenkins

174453.png

    在Jenkins服务器 /var/lib/jenkins/secrets/initialAdminPassword 文件查看密码,然后复制密码输入。


    6、插件安装

    更改jenkins下载插件的源地址

    修改 /var/lib/jenkins/hudson.model.UpdateCenter.xml 文件

    jenkins默认为:https://updates.jenkins.io/update-center.json

    改为国内地址,方便下载:

    https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

    http://mirror.esuni.jp/jenkins/updates/update-center.json

    之后重启jenkins服务即可,然后安装推荐插件。

174731.png

 8180050.png



    7、创建第一个管理员用户

80236.png


    8、URL设置

0627.png

    有域名就填域名,没有域名就默认即可。

    后面就可以完成jenkins安装了。


    9、在Jenkins服务器上安装git命令

yum install -y git


    10、创建一个代码拉取、发布的用户

[root@jenkins ~]# useradd deploy
[root@jenkins ~]# passwd deploy

    切换到deploy用户下,创建代码存放仓库目录。

[root@jenkins ~]# su - deploy
[deploy@jenkins ~]$ mkdir code
[deploy@jenkins ~]$ cd code/
[deploy@jenkins code]$ ll
total 0


    11、SSH key设置

    在jenkins服务器上创建deploy用户的ssh-key

[deploy@jenkins ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/deploy/.ssh/id_rsa): 
Created directory '/home/deploy/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/deploy/.ssh/id_rsa.
Your public key has been saved in /home/deploy/.ssh/id_rsa.pub.
The key fingerprint is:
bb:18:f7:1f:69:19:ef:6d:2c:58:83:39:e4:0c:86:18 deploy@jenkins
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|      E          |
|       o .       |
|      . . o .    |
|        S. =.o   |
|         .  *=o  |
|      . o   =+.o |
|       + o ..o..o|
|      . . ... .o.|
+-----------------+
[deploy@jenkins ~]$ cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDT+5YTqZRP9Ls88N1u3lH1wMnPKtaiD4cecUsOddJvMXnUkz75a6S96dHWaz97PstZKoFJQlQc5KgLVHvZr3QSK0nG77NeXLBk17uKNBS/CrENcObWuriTGg4mxzBs2XUnhrG77+xX1kooA21E1U0FEHz6nMFk0qb4C3Q+FYOZ5/RLMWbbQntDFBEk31lYFZrg1liBbcb7Ia7ufPupLyOkaBNRYSJh+2vPaTghIfZvK6rHAAff4iYUQqkSqkOeAHVHIO/I+mzC9nGYCOCVPL/JvDkxjBdRfg9AAksfL3+y2GCO5iQ3ypbw2s/9eTZOFjufPk0oScVgAOWHLpF4yGMX deploy@jenkins

    然后将 deploy的用户的公钥复制到gitlab上的deploy用户:

      03639.png

    3828.png

    点击 Add key后就可以在jenkins服务器上拉取代码了。


    12、测试拉取代码

[deploy@jenkins code]$ git clone git@192.168.184.123:root/test01.git
Cloning into 'test01'...
The authenticity of host '192.168.184.123 (192.168.184.123)' can't be established.
ECDSA key fingerprint is 79:6f:5c:84:99:e2:ef:71:b7:fb:ef:ee:eb:9a:1d:e1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.184.123' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (6/6), done.
[deploy@jenkins code]$ ll
total 0
drwxrwxr-x 3 deploy deploy 36 Nov  8 21:02 test01
[deploy@jenkins code]$ ll test01/
total 4
-rw-rw-r-- 1 deploy deploy 45 Nov  8 21:02 index.html



点赞
说说你的看法

所有评论: (0)