GitLab部署

gitlab

脚本部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/bash

# 定义颜色
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color

# 获取本机 IP 地址
IP_ADDRESS=$(hostname -I | awk '{print $1}')

echo -e "${YELLOW}开始安装 GitLab...${NC}"

# 下载 GitLab
echo -e "${GREEN}正在下载 GitLab...${NC}"
wget -O gitlab-ce-11.8.2-ce.0.el7.x86_64.rpm https://dlink.host/1drv/aHR0cHM6Ly8xZHJ2Lm1zL3UvcyFBaVlDNncwZHotYlJlVGJLOFM2N1lRckVoOHM_ZT1TaXBWZGU.rpm

# 安装 GitLab
echo -e "${GREEN}正在安装 GitLab...${NC}"
rpm -ivh gitlab-ce-11.8.2-ce.0.el7.x86_64.rpm

# 配置 GitLab
echo -e "${GREEN}正在配置 GitLab...${NC}"
sed -i "s|^external_url .*|external_url 'http://$IP_ADDRESS'|" /etc/gitlab/gitlab.rb

# 初始化 GitLab
echo -e "${YELLOW}正在初始化 GitLab,这可能需要几分钟...${NC}"
gitlab-ctl reconfigure

# 检查 GitLab 状态
echo -e "${GREEN}正在检查 GitLab 状态...${NC}"
gitlab-ctl status

echo -e "${GREEN}GitLab 安装和配置完成!${NC}"
echo -e "${YELLOW}请使用浏览器访问 http://$IP_ADDRESS 来完成最后的设置。${NC}"

gitlab安装与配置

准备一台新虚拟机来安装(内存可适当调大点,比如1.5G)

安装

1
[root@vm2 ~]# rpm -ivh gitlab-ce-11.8.2-ce.0.el7.x86_64.rpm

配置

1
2
[root@vm2 ~]# vim /etc/gitlab/gitlab.rb
13 external_url 'http://10.1.1.12' 修改成gitlab服务器的IP地址,对外服务

初始化

1
2
[root@vm2 ~]# gitlab-ctl reconfigure			
时间较久,需要3分钟左右时间,会自动帮助配置各个组件,并启动

查看状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@vm2 ~]# gitlab-ctl status	
run: alertmanager: (pid 10563) 36s; run: log: (pid 10234) 64s
run: gitaly: (pid 10343) 39s; run: log: (pid 9380) 163s
run: gitlab-monitor: (pid 10417) 38s; run: log: (pid 10082) 80s
run: gitlab-workhorse: (pid 10364) 39s; run: log: (pid 9835) 104s
run: logrotate: (pid 9916) 93s; run: log: (pid 9952) 90s
run: nginx: (pid 9876) 99s; run: log: (pid 9908) 96s
run: node-exporter: (pid 10399) 38s; run: log: (pid 10003) 84s
run: postgres-exporter: (pid 10585) 35s; run: log: (pid 10267) 60s
run: postgresql: (pid 9499) 158s; run: log: (pid 9562) 157s
run: prometheus: (pid 10452) 37s; run: log: (pid 10161) 70s
run: redis: (pid 9275) 170s; run: log: (pid 9296) 169s
run: redis-exporter: (pid 10426) 38s; run: log: (pid 10127) 74s
run: sidekiq: (pid 9787) 111s; run: log: (pid 9808) 110s
run: unicorn: (pid 9731) 117s; run: log: (pid 9781) 114s

gitlab登录

设置密码(密码需要最少8位)

1553099976968

1553100116028

1553355384280

gitlab设置

配置邮箱服务的用途:

  • 账号注册时,邮件验证

  • 有合并请求时,邮件通知

  • 修改密码时,通过邮件修改

1553100285396

1552840723803

1552841018888

1552841328279

1552841479545

开发者设置ssh密钥

第1步: 在开发者电脑上产生空密码密钥

(==注意:== 可以直接使用上面实验的github开发者的密钥,也可以模拟新的开发者重新产生,再做一遍。这里我们再做一次)

1
[root@vm1 ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -C "dev1@itcast.cn" -N ""

第2步: 查看并复制公钥

1
2
[root@vm1 ~]# cat /root/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAJW+LIFdcC0DI6oM6eOf6+EPks2ODyPaR/cAWKeFcfnSvuU84ZFYtziQyJYf1RdXwxo6vH+XyBNwOGrTLB1m33RvAgUznVhBH3KA9l1OimYSqEdQJ+4g+LVDkrgj/vIRc1dv7wDglyYGOOFfRftRK/QEHK911MOyJCK1nH0rr7eE7sP33aD6I6DoIfaSC0UUDPfwHDg/bQUDsF/ez4tEPOTSeJ2jVyytArHOAjtflL1+ZvP25F4osdSXju6IG8i7HHiZ0sz1WuQEYH8KzrY/zf8DBFrnOB4vl2UTNwP/NjT06TY78gKMJqcpf1maZR3YIeYlA03ccSOWSZuqq50eP dev1@itcast.cn

第3步: 在gitlab界面添加公钥

1553180687735

1553180797789

gitlab创建仓库

第1步: 在gitlab上创建项目(其实也就是存放代码的仓库)

1553355185888

第2步: 自定义项目名称,描述等

1553355075757

第3步: 验证创建好的项目

1552898610755

克隆远程仓库到本地

第1步: 查看gitlab上的帮助

1553180947454

第2步: 在开发者电脑上设置身份标识

1
2
3
[root@vm1 ~]# git config --global user.name "daniel"
[root@vm1 ~]# git config --global user.email "daniel@itcast.cn"
[root@vm1 ~]# git clone git@10.1.1.12:root/mywebsite.git

第3步: 在开发者电脑上使用git命令clone,并上传项目

1
2
3
4
5
6
7
[root@vm1 ~]# cd mywebsite/

[root@vm1 mywebsite]# echo "test web" > README.md
[root@vm1 mywebsite]# git add .
[root@vm1 mywebsite]# git commit -m "add README.md"

[root@vm1 mywebsite]# git push -u origin master

第4步: 验证

1552900062943

小结

git 分布式版本控制工具

github和gitlab都属于远程仓库

git clone: 把远程仓库的项目代码下载到本地

git push: 把本地的项目代码上传到远程仓库

git pull: 把远程仓库的项目代码更新到本地

远程仓库两种访问方法:

  • http
  • ssh 使用空密码密钥做免密