linux环境GitLab服务部署安装及使用 一、GitLab介绍GitLab是利用Ruby onRails一个开源的版本管理系统实现一个自托管的Git项目仓库可通过Web界面进行访问公开的或者私人项目。二、GitLab安装1、先安装相关依赖yum -y install policycoreutils openssh-server openssh-clients postfix policycoreutils-python2、启动postfix并设置开机自启动支持gitlab邮件发送systemctl enable postfix systemctl start postfix3、下载并安装Gitlab社区版RPM包点击下载gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm放到服务器指定目录输入下面指令执行安装rpm -ivh gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm三、GitLab配置1、配置端口号vi /etc/gitlab/gitlab.rb external_url http://103.45.163.129:9898将puma[‘port’] 8080取消注释并且改为别的端口不能和external_url 的端口重复然后再保存2、配置默认日志目录在 /etc/gitlab/gitlab.rb 文件中有许多用于各种类型日志的 log_directory键。取消注释并更新要放置在其他地方的所有日志的值将下面的配置在配置文件中/etc/gitlab/gitlab.rb放开# For example: gitlab_rails[log_directory] /var/log/gitlab/gitlab-rails puma[log_directory] /var/log/gitlab/puma registry[log_directory] /var/log/gitlab/registry ...3、Gitlab邮箱配置这里以QQ exmail (腾讯企业邮箱)为例gitlab_rails[smtp_enable] true gitlab_rails[smtp_address] smtp.exmail.qq.com gitlab_rails[smtp_port] 465 gitlab_rails[smtp_user_name] xxxxxx.com gitlab_rails[smtp_password] password gitlab_rails[smtp_authentication] login gitlab_rails[smtp_enable_starttls_auto] true gitlab_rails[smtp_tls] true gitlab_rails[gitlab_email_from] xxxxxx.com gitlab_rails[smtp_domain] exmail.qq.com # 示例 gitlab_rails[smtp_enable] true gitlab_rails[smtp_address] smtp.exmail.qq.com gitlab_rails[smtp_port] 465 gitlab_rails[smtp_user_name] fiendsintech.cn gitlab_rails[smtp_password] 123qwe gitlab_rails[smtp_authentication] login gitlab_rails[smtp_enable_starttls_auto] true gitlab_rails[smtp_tls] true gitlab_rails[gitlab_email_from] fiendsintech.cn gitlab_rails[smtp_domain] exmail.qq.com4、配置修改完执行以下命令gitlab-ctl reconfigure gitlab-ctl restart四、GitLab常用命令# 开启,关闭,重启: gitlab组件 gitlab-ctl {start|stop|restart|status} gitlab-ctl start gitlab-ctl stop gitlab-ctl restart gitlab-ctl status # 重载配置文件(重新编译gitlab的配置) gitlab-ctl reconfigure # 验证配置文件 gitlab-ctl show-config # 检查gitlab gitlab-rake gitlab:check SANITIZEtrue --trace # 查看日志 gitlab-ctl tail gitlab-ctl tail nginx/gitlab_access.log gitlab-ctl tail nginx/gitlab_error.log # 常用目录 日志地址/var/log/gitlab/ # 对应各服务的打印日志 服务地址/var/opt/gitlab/ # 对应各服务的主目录五、GitLab首次登录gitlab搭建成功后首次登录可以直接使用root账号因为如果注册注册成功后还不能直接登录需要管理员批准不如直接用root账号登录1、进入gitlab控制台查找root账号gitlab-rails console -e production输入下面查找指令admin_users User.where(admin: true)可以看到root账号的id为1根据id去修改root账号的密码2、重新设置gitlab root账号密码user User.find_by(id: 1) user.password pwd123 user.password_confirmation pwd123 user.save!3、重置过的密码重新登录六、GitLab创建组、项目、用户创建顺序先创建组——再创建项目——最后创建用户项目、组、用户的关系把创建的用户和项目加入组中只有同一组的用户才能操作该组的项目。1、创建组点击设置可以看到组、项目、人员关系2、创建项目并把项目加入组中3、创建完项目会提示添加ssh key随便进入一个磁盘目录Git Bash Here使用指令git config --list查看是否已经做了git相关配置然后输入下面指令一路回车可以获取到ssh key# ssh-keygen -t rsa # 一路回车 [rootlocalhost /]# cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC11yc2EAAAADAQABAAABAQDWqAYmPfWpw3I0GWqaIsUWJYPtn7VywwaQaM2YX311LCaO1DCPcSBQDw2/Iqbl1bifelQTIOTcKaDVsL9i5B12qdmLhasgYPXilxnIsRLOQGDU3OUBLq2FUJQvPwNoA1Lbs3yMxylkgsKUXZGsQwVPO9WZhePf/JuXSV1hQhqcDzV9RRh4jwwmhaztUtaFPlh1cj5rUPuLzasvLQFMyjJR1qyXhyzsNJGVp5zFo1PO1PHsCSJ1fKfTqsOZnpPOaDwCU3AK5oGcZmijawEl9uR8vlXJ0u1rbAcpKY702hXxTuR1bAe5PcarSlVgtih07sQoDFUczY2Rc2DW8VX9p6Etx/ rootlocalhost.localdomain3、创建普通用户并加入到群组1、设置禁止用户注册2、为开发创建账户,其他保持默认即可填写完保存后再设置密码3、创建完成后最后我们可以看到创建的[仓库] [用户] [群组]点击【develpment】将新创建的新用户加入到develpment群组才能让该用户去管理群组中的项目将项目url复制下来后面关联使用4、使用新创建的用户账号登录gitlab七、将新项目如何推送到gitlab仓库1、gitlab上新建一个空白项目2、初始化本地仓库并commit项目进入本地该项目目录下右键Git Bash Here打开git命令窗口初始化本地仓库git init将本地项目的所有文件添加到暂存区git add .commit提交项目git commit -m 初始化项目建立本地仓库和远程仓库关系并推送git remote add origin https://gitlab.xx.com/xxxx.git如果在这一步时如果出现错误fatal:remote origin already exists需要先执行下面的命令清除关联关系然后再进行上一步动作git remote rm origin查看关联关系是否成功建立git remote -v先拉取一下远程仓库内容git pull --rebase origin master再推送本地内容到远程仓库git push origin master最后看效果八、附.gitignore文件未生效处理.gitignore 文件来看确实已经包含了忽略 .idea/ 目录的规则但是没有生效说明.idea 目录中的文件已经被 Git跟踪并提交过了1、强制移除 .idea 目录下的文件git rm -r --cached -f .idea2、提交更改git add .gitignore git commit -m Remove .idea directory from Git tracking3、推送更改到远程仓库git push origin your-branch九、配置你的gitgit config --global credential.https://gitee.com.provider generic git config --global user.email xxx163.com git config --global user.name xxx -- 先删除所有之前配置的信任的文件目录 git config --global --unset-all safe.directory -- 再配置所有目录都信任不推荐但开发机常用 git config --global --add safe.directory * -- 最后查看以上的全局git配置 git config --global --list