安装包下载地址:
https://packages.gitlab.com/gitlab/gitlab gitlab-ce
rpm 包国内下载地址: https://mirrors.tuna.tsinghua.edu.cn/gitlab gitlab-ce/yum/
ubuntu
国内 下载地址 :https://mirrors.tuna.tsinghua.edu.cn/gitlab gitlab-ce/ubuntu/pool/



#:下载gitlab并安装

root@ubuntu:/usr/local/src# ll
total 652876
drwxr-xr-x  2 root root      4096 Sep 26 21:48 ./
drwxr-xr-x 10 root root      4096 Sep 18 23:01 ../
-rw-r--r--  1 root root 668531950 Sep 26 21:48 gitlab-ce_11.11.5-ce.0_amd64.deb
root@ubuntu:/usr/local/src# dpkg -i gitlab-ce_11.11.5-ce.0_amd64.deb 

#:配置gitlab

root@ubuntu:/usr/local/src# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.6.101'    #:gitlab服务器地址
### Email Settings    #:配置邮件服务器
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "316428921@qq.com"
gitlab_rails['smtp_password'] = "ebbwqkjprqilcaec"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "316428921@qq.com"
user["git_user_email"] = "316428921@qq.com"

#:初始化服务(每次修改配置文件后,都要执行此命令)

root@ubuntu:/usr/local/src# gitlab-ctl reconfigure

#:验证启动

root@ubuntu:/usr/local/src# gitlab-ctl status



#:登录giltlab设置密码(至少8位)

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_02

 

 

#:登录(默认用户为root)

Jenkins gitlab 远程部署_ubuntu_03

 

 

#: 关闭账号注册功能

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_04

 

#:登录进去,关闭此选项

 

Jenkins gitlab 远程部署_操作系统_05

Jenkins gitlab 远程部署_开发工具_06

Jenkins gitlab 远程部署_开发工具_07

 

#:在找一台主机安装jenkinns

https://mirrors.tuna.tsinghua.edu.cn/jenkins/debiandebian-stable/ #ubuntu 安装包


#:配置Java环境JDK

root@ubuntu:/usr/local/src# ls
jdk-8u212-linux-x64.tar.gz
root@ubuntu:/usr/local/src# tar xf jdk-8u212-linux-x64.tar.gz
root@ubuntu:/usr/local/src# ln -sv jdk1.8.0_212/ /usr/local/jdk    
root@ubuntu:/usr/local/src# ln -sv /usr/local/src/jdk1.8.0_212/bin/java /usr/bin/

#:配置环境变量
root@ubuntu:/usr/local/src# vim /etc/profile
JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
 root@ubuntu:/usr/local/src# source /etc/profile

#:测试
root@ubuntu:/usr/local/src# java -version
root@ubuntu:/usr/local/src# /usr/bin/java -version

#:配置安装Jenkins(因为jenkins启动需要daemon包,所以先要安装daemon,安装daemon后,会自动安装jenkins)
root@ubuntu:/usr/local/src# apt install daemon

#:自改jenkins配置文件
root@ubuntu:/usr/local/src# vim /etc/default/jenkins
JENKINS_USER=root
JENKINS_GROUP=root   #:因默认启动用户为jenkins,后期会有很多权限问题,这里先改成root
MAXOPENFILES=65536   #:打开最大文件数,最好改大点

#:启动服务
root@ubuntu:/usr/local/src# systemctl restart jenkins


#:访问

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_08

 

 #:如果jenkins访问以离线,将以下文件中的更新检查改成清华大学的地址,然后重启jenkins

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

 

Jenkins gitlab 远程部署_开发工具_09

 

 

 #:因装插件很慢,所以可以下载插件,直接解压到指定目录(插件要和jenkins同一版本)

       下载地址:http://updates.jenkinsjenkins-ci.org/download/plugins/


#:先停服务
root@ubuntu:/var/lib/jenkins/plugins# systemctl stop jenkins

#:将插件下载到此目录
root@ubuntu:/usr/local/src# cd /var/lib/jenkins/plugins/

#:解压
root@ubuntu:/var/lib/jenkins/plugins# tar xf jenkins-2.176.3-plugins.tar.gz

#:启动服务

root@ubuntu:/var/lib/jenkins/plugins# systemctl start jenkins


#:在web端重新登录-------然后点击恢复

#;创建管理员账户

Jenkins gitlab 远程部署_git_10

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_11

 

 

 

#:在gitlab的web端创建组

Jenkins gitlab 远程部署_操作系统_12

Jenkins gitlab 远程部署_git_13

Jenkins gitlab 远程部署_git_14

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_15

 

 #:创建用户

Jenkins gitlab 远程部署_git_16

Jenkins gitlab 远程部署_git_17

Jenkins gitlab 远程部署_操作系统_18

Jenkins gitlab 远程部署_git_19

 

 #:退出登录,为新建用户设置密码

Jenkins gitlab 远程部署_git_20

Jenkins gitlab 远程部署_git_21

Jenkins gitlab 远程部署_开发工具_22

 

 

#:创建一个项目

Jenkins gitlab 远程部署_ubuntu_23

Jenkins gitlab 远程部署_开发工具_24

Jenkins gitlab 远程部署_git_25

 

 

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_26

#:将添加的用户添加到组

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_27

Jenkins gitlab 远程部署_git_28

Jenkins gitlab 远程部署_git_29

 

 

 

 

 

#:创建好以后往下拉,用创建的用户登录 ,在jenkins的机器上根据提示配置一下

Jenkins gitlab 远程部署_git_30

Jenkins gitlab 远程部署_git_31

 

 #:在jenkins的机器上配置


root@ubuntu:/var/lib/jenkins/plugins# git config --global user.name "xiaoming"
root@ubuntu:/var/lib/jenkins/plugins# git config --global user.email "316428921@qq.com"


#:在web端创建一个文件

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_32

Jenkins gitlab 远程部署_开发工具_33

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_34

 

 

Jenkins gitlab 远程部署_开发工具_35

 

 #:然后在项目中找到这个,复制命令clone下来

 

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_36

Jenkins gitlab 远程部署_开发工具_37

 

 #:在jenkins的主机上clone


root@ubuntu:/opt# git clone http://192.168.6.101/linux37/web1.git
Cloning into 'web1'...
Username for 'http://192.168.6.101': xiaoming      #:输入账号
Password for 'http://xiaoming@192.168.6.101':     #:输入密码
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
root@ubuntu:/opt# ll
total 12
drwxr-xr-x  3 root root 4096 Sep 27 13:13 ./
drwxr-xr-x 23 root root 4096 Sep 18 23:07 ../
drwxr-xr-x  3 root root 4096 Sep 27 13:13 web1/


 

 

 

#:设置利用jenkins在gitlab上clone代码

Jenkins gitlab 远程部署_开发工具_38

Jenkins gitlab 远程部署_git_39

Jenkins gitlab 远程部署_git_40

 

 

#:配置jenkins从gitlab自动clone

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_41

Jenkins gitlab 远程部署_操作系统_42

Jenkins gitlab 远程部署_操作系统_43

Jenkins gitlab 远程部署_ubuntu_44

Jenkins gitlab 远程部署_开发工具_45

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_46

 

 

Jenkins gitlab 远程部署_ubuntu_47

Jenkins gitlab 远程部署_git_48

 

 #:在Gitlab中配置证书

Jenkins gitlab 远程部署_开发工具_49

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_50

Jenkins gitlab 远程部署_操作系统_51

 

 #:在jenkins生成公钥


root@ubuntu:/opt/web1# ssh-keygen


Jenkins gitlab 远程部署_开发工具_52

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_53

 

 #:公钥复制好后,就可以在jenkins服务器利用Git clone 了


root@ubuntu:/opt# git clone git@192.168.6.101:linux37/web1.git
Cloning into 'web1'...
The authenticity of host '192.168.6.101 (192.168.6.101)' can't be established.
ECDSA key fingerprint is SHA256:G7VcWONVkIT36fUwTXUwUxJUCLHs79RiDcz1tm0U6Hs.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.6.101' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.


 

 

 

#:准备正式克隆一个网页


#:在准备一台主机,安装NGINX

root@ubuntu:/usr/local/src# wget http://nginx.org/download/nginx-1.16.1.tar.gz
root@ubuntu:/usr/local/src/nginx-1.16.1# ./configure --prefix=/apps/nginx
root@ubuntu:/usr/local/src/nginx-1.16.1# make && make install

#:编辑配置文件,修改location
root@ubuntu:/usr/local/src/nginx-1.16.1# vim /apps/nginx/conf/nginx.conf
        location /linux37 {
            root /data/web1;
            index index.html index.htm;
        }

#;创建目录
root@ubuntu:/usr/local/src/nginx-1.16.1# mkdir /data/web1/linux37 -p

#:在jenkins服务器做免秘钥登录
root@ubuntu:/opt# ssh-copy-id 192.168.6.103

#:测试(必须测试,否则需要输入yes)
root@ubuntu:/opt# ssh 192.168.7.103


#:在gitlab上准备项目文件

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_54

Jenkins gitlab 远程部署_开发工具_55

Jenkins gitlab 远程部署_git_56

 

 

Jenkins gitlab 远程部署_开发工具_57

Jenkins gitlab 远程部署_操作系统_58

 

 #:在jenkins服务器部署

Jenkins gitlab 远程部署_操作系统_59

Jenkins gitlab 远程部署_git_60

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_61

 

 

Jenkins gitlab 远程部署_Jenkins gitlab 远程部署_62

Jenkins gitlab 远程部署_操作系统_63

Jenkins gitlab 远程部署_ubuntu_64