云服务器上放多个网站,优化设计六年级下册语文答案,平台网站建设教程,东莞活动外包目录 Gitlab简介
Gitlab工作原理
Gitlab服务构成
Gitlab环境部署 安装依赖包
启动postfix#xff0c;并设置开机自启
设置防火墙
下载安装gitlab rpm包
修改配置文件/etc/gitlab/gitlab.rb#xff0c;生产环境下可以根据需求修改
重新加载配置文件 浏览器登录Gitlab输…
目录 Gitlab简介
Gitlab工作原理
Gitlab服务构成
Gitlab环境部署 安装依赖包
启动postfix并设置开机自启
设置防火墙
下载安装gitlab rpm包
修改配置文件/etc/gitlab/gitlab.rb生产环境下可以根据需求修改
重新加载配置文件 浏览器登录Gitlab输入 http://服务器IP
打开另一台主机 设置发邮件功能 Gitlab简介
Gitlab 是一个基于Git实现的WEB代码仓库托管软件你可以用Gitlab自己搭建一个类似于Github一样的代码仓库一般使用gitlab搭建私有代码仓库主要是用在公司的内部代码管理。 Gitlab 功能是能够对代码的提交审核和问题跟踪这个对于软件工程代码质量的管理是至关重要的。
Gitlab分为社区版(CE)和企业版(EE)。大多数的公司还是会选择社区版。部署Gitlab是对服务器有配置要求的建议是CPU两核内存4G以上。
Gitlab工作原理
gitlab的原理其实就是git的工作原理GitHub也是基于git实现的 Remote远程仓库
远程仓库的内容可能被分布在多个地点的处于协作关系的本地仓库修改因此它可以与本地仓库同步也可以不同步但是它的内容是最旧的。 Repository本地仓库
这里面保存了被提交过的代码各个版本比起工作区和暂存区的内容它的内容会旧一些git commit 后同步index的目录树到本地仓库方便下一步通过git push同步本地仓库与远程仓库的同步。 index暂存区
git目录下的index文件暂存区会记录git add 添加文件的相关信息(文件名、大小),不保存文件实体通过id指向每个文件的实体可以使用git status查看暂存区的状态暂存区标记了你当前工作区中哪些内容是被git管理的。当你完成某个需求或者功能后需要提交代码那么第一步就是通过git add 先提交到暂存区。 workspace工作区
程序员进行开发改动的地方是你当前看到的内容也是最新的。平常我们开发就是拷贝远程仓库中的分支基于该分支进行开发在开发的过程就是在工作区的操作。 总结
任何对象都是在工作区中诞生和修改的任何修改都是从进入index区才开始被版本控制的只有把修改的代码提交到本地仓库该修改才能在仓库中留下痕迹与协助者分享本地的修改可以push到远程仓库来共享 Gitlab服务构成
Nginx静态Web服务器gitlab-shell用于处理Git命令和修改authorized keys列表gitlab-workhorse轻量级的反向代理服务器(这个是个敏捷的反向代理它会处理一些大的HTTP请求比如文件的上传下载其他的请求会反向代理给Gitlab Rails应用)logrotate日志文件管理工具postgresql数据库redis缓存数据库sidekiq用于在后台执行队列的任务unicornGitlab Rails应用是托管在这个服务器上面的
Gitlab环境部署
[rootlocalhost ~]# hostname gitlab
[rootlocalhost ~]# bash
[rootgitlab ~]#安装依赖包
[rootgitlab ~]# yum -y install curl openssh-server openssh-clients postfix cronie policycoreutils-python
启动postfix并设置开机自启
[rootgitlab ~]# systemctl start postfix
[rootgitlab ~]# systemctl enable postfix设置防火墙
[rootgitlab ~]# systemctl stop firewalld
[rootgitlab ~]# iptables -F
[rootgitlab ~]# setenforce 0下载安装gitlab rpm包
清华开源镜像站清华大学开源软件镜像站 | Tsinghua Open Source Mirror
[rootgitlab ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm
--2023-08-18 09:51:35-- https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm
正在解析主机 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.15.130, 2402:f000:1:400::2
正在连接 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.15.130|:443... 已连接。
已发出 HTTP 请求正在等待回应... 200 OK
长度656975758 (627M) [application/x-redhat-package-manager]
正在保存至: “gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm”100%[] 656,975,758 3.97MB/s 用时 2m 43s 2023-08-18 09:54:18 (3.85 MB/s) - 已保存 “gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm” [656975758/656975758])[rootgitlab ~]# rpm -ivh gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm
警告gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID f27eab47: NOKEY
准备中... ################################# [100%]
正在升级/安装...1:gitlab-ce-11.11.3-ce.0.el7 ################################# [100%]*. *.*** ******** *****.****** *************** ********,,,,,,,,,***********,,,,,,,,,,,,,,,,,,,,*********,,,,,,,,,,,.,,,,,,,,,,,*******,,,,,,,,,,,,,,,,,,,,,*****,,,,,,,,,.,,,,,,,****,,,,,,.,,,***,,,,,*,._______ __ __ __/ ____(_) /_/ / ____ _/ /_/ / __/ / __/ / / __ / __ \/ /_/ / / /_/ /___/ /_/ / /_/ /\____/_/\__/_____/\__,_/_.___/
修改配置文件/etc/gitlab/gitlab.rb生产环境下可以根据需求修改
[rootgitlab ~]# vim /etc/gitlab/gitlab.rb
13 external_url http://192.168.147.142重新加载配置文件
[rootgitlab ~]# gitlab-ctl reconfigure
[rootgitlab ~]# gitlab-ctl restart
[rootgitlab ~]# netstat -lnpt | grep :80tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 11982/nginx: master
启动gitlib-ctl start 关闭gitlab-ctl stop 重启gitlab-ctl restart 重载配置gitlab-ctl reconfigure 查看状态gitlab-ctl status
查看gitlab版本
[rootgitlab ~]# head -1 /opt/gitlab/version-manifest.txt
gitlab-ce 11.11.3 浏览器登录Gitlab输入 http://服务器IP 创建新的项目 打开另一台主机
[rootlocalhost ~]# hostname jenkins
[rootlocalhost ~]# bash[rootjenkins ~]# git config --global user.name jenkins
[rootjenkins ~]# git config --global user.email jenkinstest.com
[rootjenkins ~]# git config --global color.ui true
[rootjenkins ~]# git config --list
user.namejenkins
user.emailjenkinstest.com
color.uitrue
[rootjenkins ~]# git clone http://192.168.147.142/root/crushlinux.git
正克隆到 crushlinux...
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.设置发邮件功能
修改配置文件
[rootgitlab ~]# vim /etc/gitlab/gitlab.rb
517 gitlab_rails[smtp_enable] true518 gitlab_rails[smtp_address] smtp.163.com519 gitlab_rails[smtp_port] 25520 gitlab_rails[smtp_user_name] crushlinux163.com521 gitlab_rails[smtp_password] 123456522 gitlab_rails[smtp_domain] 163.com523 gitlab_rails[smtp_authentication] login524 gitlab_rails[smtp_enable_starttls_auto] true
#修改gitlab配置的发信人53 gitlab_rails[gitlab_email_from] crushlinux163.com
677 user[git_user_email] crushlinux163.com重新加载配置并重新启动服务
[rootgitlab ~]# gitlab-ctl reconfigure
[rootgitlab ~]# gitlab-ctl restart