使用vagrant管理虛擬機(jī)茶敏,非常方便恬惯,可以自己經(jīng)常做實(shí)驗(yàn)颈将,機(jī)器也不占用資源晴圾,內(nèi)存和CPU的消耗颂砸,非常低。
特別是搭建高可用環(huán)境時(shí)需要模擬高可用服務(wù)死姚,需要不少同時(shí)運(yùn)行的機(jī)器人乓,在服務(wù)器上進(jìn)行模擬實(shí)驗(yàn)的,vagrant不失為一種好方法都毒。
我時(shí)候再在VirtualBox 5.1中安裝CentOS 7.3 1611色罚,鏡像CentOS-7-x86_64-Minimal-1611.iso。
安裝CentOS 7.3 1611
虛擬機(jī)配置
點(diǎn)擊新建温鸽,使用專(zhuān)家模式
然后點(diǎn)擊
創(chuàng)建
保屯,選擇硬盤(pán)大小,建議50G涤垫,一開(kāi)始并不會(huì)占用過(guò)很多,因?yàn)槭莿?dòng)態(tài)分配竟终,用多少物理機(jī)分配多少點(diǎn)擊
創(chuàng)建
后蝠猬,選擇新虛擬機(jī)點(diǎn)擊設(shè)置
,選擇存儲(chǔ)
選項(xiàng)卡统捶,添加下載好的ISO鏡像選擇
網(wǎng)絡(luò)
選項(xiàng)卡榆芦,這里我們多添加一塊網(wǎng)卡,啟動(dòng)網(wǎng)絡(luò)連接
打鉤喘鸟,連接方式
選擇橋接網(wǎng)卡匆绣,界面名稱(chēng)
選擇你連路由器的那張網(wǎng)卡,我的是無(wú)線網(wǎng)卡什黑。下面就可以保存崎淳,開(kāi)機(jī)了!
虛擬機(jī)安裝Linux系統(tǒng)
最小化也是有圖像界面愕把。
直接下一步
這四項(xiàng)是需要設(shè)置的
語(yǔ)言&時(shí)區(qū)
除了英文拣凹,還需要選擇中文簡(jiǎn)體和繁體
時(shí)區(qū)直接點(diǎn)擊中國(guó)上海或者北京就可以了
網(wǎng)絡(luò)
選擇第二塊橋接的網(wǎng)卡
禁IPV6恨豁,開(kāi)IPV4嚣镜,手動(dòng)分配IP,主機(jī)名host name可以改也可以不改
磁盤(pán)
選擇自己配置分區(qū)橘蜜,
自動(dòng)分配
建議分區(qū)都使用XFS分系統(tǒng)菊匿,現(xiàn)在IO性能和安全性更好。
建議右下角單獨(dú)掛載一個(gè)/data分區(qū)
好了后,點(diǎn)擊左上角
DONE
跌捆,然后返回上面初始圖凡涩,點(diǎn)擊Begin Installation
賬戶(hù)
設(shè)置root賬戶(hù)的密碼,另外新建一個(gè)vagrant用戶(hù)疹蛉,點(diǎn)擊高級(jí)配置活箕,分配到wheel分組,這里就不截圖了可款。
CentOS 7的配置
查看防火墻和SELinux
iptables -L
getenforce
確保/etc/sysconfig/network-scripts/下面的網(wǎng)卡配置的onboot=yes
升級(jí)源育韩,建議最好換國(guó)內(nèi)的源
具體細(xì)節(jié)就不貼了
#先按照wget
[root@tzfmysql ~]# yum install wget -y
#使用阿里的源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@tzfmysql ~]# yum makecache
[root@tzfmysql ~]# yum upgrade -y
[root@tzfmysql ~]# yum install vim -y
此步驟個(gè)人愛(ài)好,不是必須的
yum install zsh,git -y
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
關(guān)閉防火墻闺鲸,郵件服務(wù)筋讨,SElinux
~ systemctl disable firewalld.service
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
~ systemctl disable postfix.service
Removed symlink /etc/systemd/system/multi-user.target.wants/postfix.service.
vim /etc/sysconfig/selinux
#修改一下代碼
SELINUX=disabled
安裝kernel-devel,需要安裝VBOX的增強(qiáng)包,就必須安裝這個(gè)
~ yum install kernel-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package kernel-devel.x86_64 0:3.10.0-514.26.2.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
kernel-devel x86_64 3.10.0-514.26.2.el7 updates 13 M
Transaction Summary
================================================================================
Install 1 Package
Total download size: 13 M
Installed size: 34 M
Is this ok [y/d/N]: y
#GCC
~ yum groupinstall Development Tools -y
#安裝rz方便上傳增強(qiáng)包
~ yum install lrzsz -y
rz
然后在VOBX的安裝目錄下上傳VBoxGuestAdditions.iso
安裝增強(qiáng)包
? ~ mv VBoxGuestAdditions.iso /data
? ~ cd /data
? /data ls
VBoxGuestAdditions.iso
? /data mount -o loop VBoxGuestAdditions.iso /media/
mount: /dev/loop0 is write-protected, mounting read-only
? /data cd /media
? /media
? /media ls
32Bit cert VBoxSolarisAdditions.pkg
64Bit OS2 VBoxWindowsAdditions-amd64.exe
AUTORUN.INF runasroot.sh VBoxWindowsAdditions.exe
autorun.sh VBoxLinuxAdditions.run VBoxWindowsAdditions-x86.exe
? /media ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.1.22 Guest Additions for Linux...........
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
vboxadd.sh: Starting the VirtualBox Guest Additions.
#卸載增強(qiáng)包
? unmout /media
? /media yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras updates
Cleaning up everything
Cleaning up list of fastest mirrors
Vagrant Box 打包
vagrant安裝
vagrant的安裝很簡(jiǎn)單摸恍,直接看官方文檔即可悉罕,這里就不復(fù)述了。
權(quán)限配置公鑰
為vagrant添加sudo權(quán)限
vim /etc/sudoers
%wheel ALL=(ALL) NOPASSWD: ALL
#添加ssh的
~ cd ~vagrant/
~vagrant cd .ssh/
~vagrant ls -al
~vagrant mkdir .ssh
~vagrant cd .ssh/
.ssh wget https://github.com/mitchellh/vagrant/blob/master/keys/vagrant.pub
--2017-08-06 22:25:31-- https://github.com/mitchellh/vagrant/blob/master/keys/vagrant.pub
Resolving github.com (github.com)... 192.30.255.113, 192.30.255.112
Connecting to github.com (github.com)|192.30.255.113|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘vagrant.pub’
[ <=> ] 98,894 44.5KB/s in 2.2s
~ cat vagrant.pub >authorized_keys
? .ssh ll
total 100K
-rw-r--r-- 1 root root 97K Aug 6 22:25 vagrant.pub
? .ssh chmod 600 *
? .ssh ll
total 100K
-rw------- 1 root root 97K Aug 6 22:25 vagrant.pub
? .ssh cd ..
? ~vagrant ls
? ~vagrant ll
total 0
? ~vagrant ls -al
total 12
drwx------. 3 vagrant vagrant 74 Aug 6 22:24 .
drwxr-xr-x. 3 root root 21 Aug 6 20:10 ..
-rw-r--r--. 1 vagrant vagrant 18 Aug 3 2016 .bash_logout
-rw-r--r--. 1 vagrant vagrant 193 Aug 3 2016 .bash_profile
-rw-r--r--. 1 vagrant vagrant 231 Aug 3 2016 .bashrc
drwxr-xr-x 2 root root 25 Aug 6 22:25 .ssh
? ~vagrant chown vagrant:vagrant .ssh
? ~vagrant ll
total 0
? ~vagrant ls -al
total 12
drwx------. 3 vagrant vagrant 74 Aug 6 22:24 .
drwxr-xr-x. 3 root root 21 Aug 6 20:10 ..
-rw-r--r--. 1 vagrant vagrant 18 Aug 3 2016 .bash_logout
-rw-r--r--. 1 vagrant vagrant 193 Aug 3 2016 .bash_profile
-rw-r--r--. 1 vagrant vagrant 231 Aug 3 2016 .bashrc
drwxr-xr-x 2 vagrant vagrant 25 Aug 6 22:25 .ssh
? ~vagrant chmod 700 .ssh
? ~vagrant ls -al
total 12
drwx------. 3 vagrant vagrant 74 Aug 6 22:24 .
drwxr-xr-x. 3 root root 21 Aug 6 20:10 ..
-rw-r--r--. 1 vagrant vagrant 18 Aug 3 2016 .bash_logout
-rw-r--r--. 1 vagrant vagrant 193 Aug 3 2016 .bash_profile
-rw-r--r--. 1 vagrant vagrant 231 Aug 3 2016 .bashrc
drwx------ 2 vagrant vagrant 25 Aug 6 22:25 .ssh
? ~vagrant cd .ssh
? .ssh ll
total 100K
-rw------- 1 root root 97K Aug 6 22:25 vagrant.pub
配置網(wǎng)卡
此步驟時(shí)候我很郁悶的一步立镶,就是當(dāng)你直接把這個(gè)鏡像打包后壁袄,以后如果在同一臺(tái)機(jī)器上面使用同一個(gè)box虛擬多臺(tái)機(jī)器,配置就會(huì)出問(wèn)題媚媒。因此這步驟還是比較關(guān)鍵的
#第一步:把網(wǎng)卡中的MAC地址注釋
#HWADDR=XX:XX------------
#第二步:刪除
rm -rf /etc/udev/rules.d/70-persistent-ipoib.rules
#安裝新的虛擬機(jī)后嗜逻,建議改一下MAC地址,如果還遇到其他問(wèn)題缭召,建議看看這里
#虛擬機(jī)克隆CentOS7 出現(xiàn)的網(wǎng)絡(luò)問(wèn)題解決辦法http://www.bubuko.com/infodetail-1483490.html
poweroff
打包BOX
#進(jìn)入vagrant的目錄
vagrant package --output ./tzfcentos73.box --base CentOS73
[E:\vagrant]$ vagrant package --output ./tzfcentos73.box --base CentOS73
==> CentOS73: Exporting VM...
==> CentOS73: Compressing package to: E:/vagrant/tzfcentos73.box
#解釋output是指box的名字栈顷,--base是指基于VBOX里面的哪個(gè)虛擬機(jī)打包,這的名字一定要爭(zhēng)取