版權聲明
本文由“開發者手冊”原創,如需轉載,請標明出處。
基本介紹
作為一個軟件開發者,總想自己搭個服務器、組個集群、整整Docker、玩玩k8s,什么?系統搞掛了.... 怎么能快速重來?
一般我們會有一臺工作筆記本(宿主機),可以通過VirtualBox安裝多臺centos系統來搭建本地開發環境。網絡要實現宿主機與虛擬機之間的互通、虛擬機與虛擬機之間的互通、虛擬機可以訪問外部網絡和同一局域網內的其他主機、同一局域網中的其他主機不能訪問虛擬機。
系統環境
宿主機環境:macBook Pro 2015,macOS Catalina 10.15.6
VirtualBox:6.1
centos鏡像版本:CentOS-7-x86_64-Minimal-1804.iso
說明:安裝包在我共享的網盤里,如果需要可以+關注私信我
VirtualBox安裝和基本設置
VirtualBox安裝好后的主頁面如下圖所示
VirtualBox四種常見網絡配置方案
Network Address Translation(NAT,網絡地址轉換模式):在NAT模式下虛擬機訪問網絡是通過主機提供的,虛擬機本身并不存在于網絡中,虛擬機通過DHCP獲得的虛擬ip通常為(10.0.2.X)。
Bridged Adapter(橋接模式):在橋接模式下,虛擬機和主機的網卡之間就像架設了一座橋,使虛擬機可以直接接入到網絡中。虛擬機能被分配到一個真實IP,所有的網絡功能和真機一樣。
Internal(內部網絡模式):在內部網絡模式下,虛擬機與外網完全斷開,只能實現虛擬機和虛擬機之間的網絡互相訪問。
Host-Only Adapter(主機模式):在主機模式下,VirtualBox會在宿主機上模擬出一張虛擬網卡(vboxnet:192.168.56.1)專門用于提供虛擬機使用。所有的虛擬機都會連接到該網卡上,虛擬機通過DHCP獲得的虛擬ip通常為(192.168.56.X)。
配置本地VirtualBox網絡環境
我們會采用NAT+Host-Only配置方式來實現需求。NAT模式是用于滿足虛擬機外網的訪問,Host-Only模式是設置固定IP使虛擬機和宿主機可以互相訪問。
創建NAT網絡環境
1、點擊全局設定
2、選擇網絡->點擊添加->啟動網絡,參數保持默認即可
創建Host-Only網絡環境
1、選擇網絡菜單
2、點擊創建按鈕,會生成一個vboxnet0的網絡配置,網段為:192.168.56.X,DHCP服務器可以啟用也可以關閉,我這邊選擇關閉,因為后續會配置為固定IP。
安裝centos操作系統
安裝步驟
1、點擊新建按鈕
2、輸入基本信息后點擊創建按鈕
3、設置磁盤大小后點擊創建按鈕
4、點擊設置->網絡來設置網卡信息
5、點擊啟動按鈕
6、出現選擇操作系統鏡像頁面,點擊選擇按鈕
再點擊Add按鈕,在彈出框中選擇本地鏡像文件,最后點擊choose按鈕
再點擊start按鈕
7、此時會顯示安裝頁面
8、選擇安裝語言
9、設置時區
10、選擇安裝路徑
11、點擊Begin Installation開始安裝
12、設置root密碼
13、點擊Reboot按鈕重啟
14、重啟后使用root用戶登錄系統
centos基本配置
配置網卡
輸入ip addr命令查看網絡信息,發現有enp0s3和enp0s8兩個網卡。
enp0s3為NAT模式對應的網卡,不配置固定IP。
enp0s8為Host-Only模式對應的網卡,配置為固定IP。
設置enp0s3網卡
命令:vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
修改:ONBOOT=yes
保存退出后。
輸入命令:systemctl restart network重啟網絡服務。
此時再通過命令:ip addr查看網絡配置,發現enp0s3這張網卡被分配到ip(10.0.2.9)了:
此時外網訪問應該也通了,ping www.baidu.com后結果如下:
設置enp0s8網卡:
命令:vi /etc/sysconfig/network-scrirpts/ifcfg-enp0s8
修改如下:
我這邊把固定IP設置為:192.168.56.56
通過命令:systemctl restart network重啟網絡服務。
此時通過命令:ip addr查看,發現enp0s8網卡的固定IP也生效了。
在宿主機通過ping 192.168.56.56命令發現宿主機可以訪問虛擬機了。
該虛擬機通過ping 192.168.56.1發現虛擬機也可以訪問宿主機。
配置主機名
命令:hostnamectl --static set-hostname demo56
說明:設置主機名為demo56。
關閉防火墻
命令:systemctl stop firewalld && systemctl disable firewalld
輸出:
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
關閉SElinux
命令:setenforce 0
命令:vi /etc/selinux/config
修改:SELINUX=disabled
關閉swap和取消swap掛載
命令:swapoff -a && sysctl -w vm.swAppiness=0
結果:vm.swappiness = 0
命令:vi /etc/fstab
修改(加#號注釋):#/dev/mapper/centos-swap swap swap defaults 0 0
設置localadmin用戶
由于一般不直接用root用戶來做操作,所以我們通過創建localadmin用戶替代root用戶。
以下操作在root用戶下執行
創建用戶組
命令:groupadd localadmin
創建用戶
命令:useradd localadmin -m -s /bin/bash -d /home/localadmin -g localadmin
參數說明:
- -m:創建用戶目錄
- -s:指定登錄shell
- -d:設置主目錄
- -g:設置用戶所屬組
設置登錄密碼
命令:passwd localadmin
設置sudo權限
命令:visudo -f /etc/sudoers
新增:
localadmin ALL=(ALL) NOPASSWD: ALL
說明:
NOPASSWD: ALL 表示執行所有操作都無需驗證密碼
安裝基礎軟件
在localadmin用戶下執行
在線安裝:
- 上傳下載工具:sudo yum -y install lrzsz
- 壓縮/解壓縮:sudo yum -y install zip unzip
- wget下載工具:sudo yum -y install wget
- lsof工具:sudo yum -y install lsof
- curl工具:sudo yum -y install curl
- net-tools工具:sudo yum -y install net-tools
- vim工具:sudo yum -y install vim
- nscd工具:sudo yum -y install nscd
安裝docker(17.03.0-ce,安裝包在我的共享網盤里有提供):
命令:sudo yum -y install docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm
命令:sudo yum -y install docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm
設置docker開機啟動:sudo systemctl enable docker
啟動docker:sudo systemctl start docker
查看docker是否啟動成功:docker -v
制作centos備份系統
通過前面的步驟,我們已經安裝好了centos系統,并做了基本的配置和安裝了基礎軟件,服務器基本可以投入使用了。但是為了不重復造輪子,我們可以通過VirtualBox把當前這個狀態的系統備份下來作為基礎系統,后續的虛擬機都從這個系統獲取。
先關閉當前centos系統。
1、選擇備份系統菜單
2、點擊生成按鈕
3、輸入備份名稱和備份描述后點擊OK按鈕
4、創建成功
根據備份系統創建新虛擬機
注意:做此操作時,最好保持被復制的系統處于關閉狀態,以防止出現ip沖突等問題。
現在我們要基于前面備份的基礎系統來創建真正投入使用的系統
1、在要被備份的虛擬機上點擊復制按鈕
2、填寫新虛擬機的名稱和存放路徑
3、選擇副本類型
4、選擇備份類型
5、點擊復制后,發現server111這臺虛擬機創建成功
對新虛擬機做的配置
設置新的固定IP
我這里將IP設置為:192.168.56.111
啟動server111這臺虛擬機,使用root賬戶登錄,然后執行如下命令設置IP
命令:vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
修改:
IPADDR=192.168.56.111
再執行命令:systemctl restart network 重啟網絡服務。
此時會發現enp0s8的ip變為了192.168.56.111
設置主機名
我這里設置為server111
命令:hostnamectl --static set-hostname server111
常見問題及解決方法
無法正確解析域名
問題起因:這個問題是由于虛擬機的DNS服務器IP地址設置不正確引起的。一般情況下,虛擬機使用的是和宿主機一樣的DNS設置。如果是在公司創建的虛擬機,創建好后能上網,但是拿到家里就上不了了,這是由于DNS服務地址還沒有刷新過來,導致在家上不了網。
解決辦法:可以通過重啟虛擬機或者手動刷新DNS緩存來解決,刷新DNS緩存命令如下:sudo systemctl restart nscd
參考資料
VirtualBox官方地址:https://www.virtualbox.org
結束語
希望我的文章能給您帶來幫助,如果您有什么疑問,可以給我留言,我會在第一時間給您提供解答。如果您有好的建議或想法,也歡迎給我留言。