一、搭建kvm虚拟环境
1.安装软件包
- 判断cpu是否支持硬件虚拟化
grep -i -E '(vmx|svm|lm)' /proc/cpuinfo
--------------------------------------------
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rd
--------------------------------------------
- 安装软件包
yum install libvirt-daemon-kvm qemu-kvm virt-manager
- 装载 kvm 模块到内核
查看模块信息
~]# modinfo kvm
--------------------------------------------
filename: /lib/modules/3.10.0-957.el7.x86_64/kernel/arch/x86/kvm/kvm.ko.xz
license: GPL
author: Qumranet
retpoline: Y
rhelversion: 7.6
srcversion: 915F3C0C333F99E01AD9125
depends: irqbypass
intree: Y
vermagic: 3.10.0-957.el7.x86_64 SMP mod_unload modversions
signer: CentOS Linux kernel signing key
sig_key: B7:0D:CF:0D:F2:D9:B7:F2:91:59:24:82:49:FD:6F:E8:7B:78:14:27
sig_hashalgo: sha256
parm: ignore_msrs:bool
parm: min_timer_period_us:uint
parm: kvmclock_periodic_sync:bool
parm: tsc_tolerance_ppm:uint
parm: lapic_timer_advance_ns:uint
parm: vector_hashing:bool
parm: halt_poll_ns:uint
parm: halt_poll_ns_grow:uint
parm: halt_poll_ns_shrink:uint
--------------------------------------------
加载模块
modprobe kvm
验证是否加载
lsmod |grep kvm
--------------------------------------------
kvm_intel 183621 0
kvm 586948 1 kvm_intel
irqbypass 13503 1 kvm
--------------------------------------------
2.启动服务
- 启动
systemctl start libvirtd
- 查看服务状态
~]# systemctl status libvirtd
--------------------------------------------
● libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-08-25 08:28:51 CST; 7s ago
Docs: man:libvirtd(8)
https://libvirt.org
Main PID: 44561 (libvirtd)
Tasks: 17 (limit: 32768)
CGroup: /system.slice/libvirtd.service
└─44561 /usr/sbin/libvirtd
Aug 25 08:28:51 websrv1.ilinux.io systemd[1]: Starting Virtualization daemon...
Aug 25 08:28:51 websrv1.ilinux.io systemd[1]: Started Virtualization daemon.
--------------------------------------------
3.创建虚拟机
- 使用 ssh 连接虚拟机服务器
ssh -X root@192.168.30.100
- 运行图形化工具
virt-manager &
- 创建虚拟机
- 可能遇到的问题
(virt-manager:45605): Gtk-WARNING **: 08:44:15.836: cannot open display:
问题是使用 Xshell 或 SecureCRT 原因,使用 linux 桌面自带的 终端打开就完全没有问题。
4.启动虚拟机
- 创建网卡桥接口
可能需要重启网络服务
virsh iface-bridge ens33 vint0
brctl show
--------------------------------------------
bridge name bridge id STP enabled interfaces
vint0 8000.000c2959dc76 yes ens33
--------------------------------------------
- 选择虚拟网桥
- 启动
二、搭建git服务器
1.服务器端
- 安装软件包
配置 yum 源
国内使用清华大学的镜像要快的多 (使用帮助)
vim /etc/yum.repos.d/gitlab-ce.repo
--------------------------------------------
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
--------------------------------------------
执行安装
sudo yum makecache
sudo yum install gitlab-ce
- 配置服务
gitlab-ctl reconfigure
- 启动服务
gitlab-ctl start
- 登录服务器
设置管理员密码
登录
2.客户端
- 安装git
yum -y install git
- 克隆服务器上的项目
先在服务器上新建一个项目
找到项目的克隆地址
使用 ssh 方式克隆项目
git clone git@192.168.30.104:test/myproject.git
- push 项目
添加 提交的用户名和邮箱
[root@websrv1 myproject]# git config --global user.name test
[root@websrv1 myproject]# git config --global user.email test@163.com
[root@websrv1 myproject]# cat ~/.gitconfig
[user]
name = test
email = test@163.com
在服务器上添加 客户端的 ssh 公钥
查看项目配置文件
[root@websrv1 myproject]# cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@192.168.30.104:test/myproject.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
项目修改提交后上传到服务器
git push origin master
Counting objects: 4, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 312 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.30.104:test/myproject.git
4ee17f4..ac7d541 master -> master
- 查看项目变化
参考文章
- GitHub与GitLab的区别以及GitLab的搭建与使用