====================================================================================================
GITlab环境部署
角色 | IP | 内存 |
gitlab01 | 192.168.200.112 | 4G |
git-client | 192.168.200.113 | 1G |
关闭防火墙和selinux
[root@localhost ~]# hostname gitlab01
[root@localhost ~]# bash
[root@gitlab01 ~]# systemctl stop firewalld
[root@gitlab01 ~]# iptables -F
[root@gitlab01 ~]# setenforce 0
安装依赖包并设置开机自启
[root@gitlab01 ~]# yum install curl openssh-server openssh-client postfix cronie policycoreutils-python -y
[root@gitlab01 ~]# systemctl start postfix
[root@gitlab01 ~]# systemctl enable postfix
上传并解压gitlab源码包
[root@gitlab01 ~]# ls
gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm
[root@gitlab01 ~]# rpm -ivh gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
修改配置文件/etc/gitlab/gitlab.rb 生产环境可以跟据需求修改
[root@gitlab01 ~]# vim /etc/gitlab/gitlab.rb
修改13行: external_url 'http://192.168.200.112'
重新加载配置文件
[root@gitlab01 ~]# gitlab-ctl reconfigure
[root@gitlab01 ~]# gitlab-ctl restart
[root@gitlab01 ~]# netstat -lnpt | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 13077/nginx: master
tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 13077/nginx: master
测试:浏览器输入192.168.200.112进入网站
- Private 私有项目,只有自己或者项目组内的人才能访问
- Internal 所有登录的用户都能访问
- Public 公开的,任何人都能访问
113客户端操作:
[root@svn ~]# hostname git-client
[root@svn ~]# bash
[root@git-client ~]# systemctl stop firewalld
[root@git-client ~]# iptables -F
[root@git-client ~]# setenforce 0
[root@git-client ~]# rz
[root@git-client ~]# ls
git-2.22.0.tar.gz
[root@git-client ~]#yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel autoconf gcc gcc-c++ make -y
[root@git-client ~]# tar xf git-2.22.0.tar.gz -C /usr/src
[root@git-client ~]# cd /usr/src/git-2.22.0/
[root@git-client git-2.22.0]# make configure
[root@git-client git-2.22.0]# ./configure --prefix=/usr/local/git && make && make install
[root@git-client git-2.22.0]# ln -sf /usr/local/git/bin/git /usr/bin
[root@git-client git-2.22.0]# git --version
git version 2.22.0
[root@git-client git-2.22.0]# git config --global user.name "crushlinux"
[root@git-client git-2.22.0]# git config --global user.email "crushlinux@163.com"
[root@git-client git-2.22.0]# git config --global color.ui true
[root@git-client git-2.22.0]# git config --list
user.name=crushlinux user.email=crushlinux@163.com color.ui=true
将112中gitlab的代码进行克隆到113gitlab上:
[root@gitclient ~]# git clone http://192.168.200.111/root/svn-git.git
正克隆到 'svn-git'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
展开对象中: 100% (3/3), 完成.
[root@gitclient ~]# ls
svn-git
git-2.22.0.tar.gz
[root@gitclient git_data]# cd
[root@gitclient ~]# cd svn-git/
[root@gitclient svn-git]# ls
README.md
[root@gitclient svn-git]# cat README.md
svn git file [root@gitclient svn-git]#
===================================================================================================
新项目推送到gitlab实践
gitlab前面已经搭建好了,如果我们想用把代码上传到gitlab仓库上的话,先要新建一个项目仓库。然后本地安装git环境,就可以提交了。
新建一个新项目仓库
新建一个本地文件夹,cd进去,然后 init建仓
[root@jenkins ~]# cd git_data/
[root@jenkins git_data]# git init
已初始化空的 Git 仓库于 /root/git_data/.git/
[root@jenkins git_data]# pwd
/root/git_data
新建项目文件名
[root@jenkins git_data]# vim one.py
#这是一个pyhton开发的文件代码 #:wq保存退出 print('hello world!')
[root@jenkins git_data]# ls
one.py
提交代码到本地仓库git add * (*是提交当前文件夹下全部的,也可以指定提交一个文件如:one.py)
[root@jenkins git_data]# git add one.py
查看仓库状态 git status
[root@jenkins git_data]# git status
位于分支 master
尚无提交
要提交的变更:
(使用 "git rm --cached <文件>..." 以取消暂存)
新文件: one.py
代码提交到缓存区 git commit -m "描述"
[root@jenkins git_data]# git commit -m '这是python代码' one.py
[master(根提交) 0a28aca] 这是python代码
1 file changed, 4 insertions(+)
create mode 100644 one.py
提交到远程仓库
[root@jenkins git_data]# git remote add origin http://192.168.200.111/root/python.git
最后一步push推送过去,push的时候,会让你输入账号和密码,这里的用户名和密码就是gitlab上注册的用户了
[root@jenkins git_data]# git push -u origin master
Username for 'http://192.168.200.111': root
Password for 'http://root@192.168.200.111':
remote: HTTP Basic: Access denied
fatal: 'http://192.168.200.111/root/python.git/' 鉴权失败
[root@jenkins git_data]# git push -u origin master
Username for 'http://192.168.200.111': root
Password for 'http://root@192.168.200.111':
枚举对象: 3, 完成.
对象计数中: 100% (3/3), 完成.
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 304 bytes | 304.00 KiB/s, 完成.
总共 3 (差异 0),复用 0 (差异 0)
To http://192.168.200.111/root/python.git
* [new branch] master -> master
分支 'master' 设置为跟踪来自 'origin' 的远程分支 'master'。
gitlab查看推送结果