用VirtualBox建立一個ubuntu機群
最近想自己搞搞RabbitMQ叢集的配置方法,但是租機群、docker畢竟是別人的東西,折騰的不夠盡興,所以自己搞了個物理機虛擬出來一個機群。
這個折騰好了後,可以自己搞搞redis的叢集啊什麼的,甚至覺得自己無聊的話,搞搞hadoop這些也是可以的,那記得注意下物理機的能力。
安裝VirtualBox:
官網:https://www.virtualbox.org/,安裝非常簡單,一路next、同意即可。
需要注意的是,安裝好後,開啟“管理–》全域性設定—》常規”,如下可以設定虛擬電腦位置,預設在C盤,可以放到其他盤區,防止佔用C過多:
VirtualBox安裝ubuntu
下載ubuntu
建議到網易映象去下載:http://mirrors.163.com/
我下載的的是:ubuntu-releases–》16.04–》ubuntu-16.04.3-server-i386.iso 也就是16.04的32位伺服器版本,為什麼用32位呢?我計劃裝三個電腦的叢集,64位執行起來吃力啊。
VirtualBox安裝ubuntu
virtualBox ubuntu 設定雙網絡卡 虛擬機器可上網且可與主機互相訪問
主要原理雙網絡卡,一個網絡卡負責訪問外網,一個網絡卡負責與主機互動
未開啟虛擬機器的時候,給虛擬機器增加網絡卡
訪問外網:
對於這個訪問外網的網絡卡,如果以前的某種設定可以連線通,那就不用改,不用非得是NAT!!!
與主機互動的網絡卡,這個必須是Host-Only:
檢視網絡卡並記錄網絡卡的名字,我的網絡卡名字就是 enp0s3 和 enp0s8
# sudo ifconfig -a
分清那個是Host-Only的網絡卡,比如上圖可以看到Host-Only網絡卡MAC地址是:080017114fbb,下圖中的HWadder中找到對應的就是那塊,我的Host-Only對應enp0s8這塊網絡卡。
修改網絡卡配置,如下圖所示,我的檔案有多餘的配置,請忽略
# sudo vim /etc/network/interfaces
首先ipconfig一下自己的物理機網路,看看物理機的host-only地址是多少,我的是192.168.56.1,所以Host-Only的網絡卡必須是192.168.56.*,使他們處於統一網段
重新啟動虛擬機器的網路服務,必要時重啟下虛擬機器
# sudo /etc/init.d/networking restart
測試
已知主機的ip是192.168.56.1,
主機ping 192.168.56.111
虛擬機器ping 192.168.56.1
虛擬機器ping www.baidu.com
用XShell連線虛擬機器
物理機可以通過XShell與另外三臺虛擬機器相連,減少切換次數,如果你沒有這個需求,可以跳過這一步
裝上OpenSSH,安裝Ubuntu時已經安裝上的請忽略這一步
#更新源列表
sudo apt-get update
#安裝ssh
sudo apt-get install openssh-server
#檢視ssh服務是否啟動,有sshd,說明ssh服務已經啟動
sudo ps -e |grep ssh
#ssh服務啟動
sudo service ssh start
修改配置檔案使其他主機可以連線
#修改配置檔案"/etc/ssh/sshd_config"
sudo vim /etc/ssh/sshd_config
#修改配置檔案:
ListenAddress :: 解開註釋
ListenAddress 0.0.0.0 解開註釋
PasswordAuthentication yes 解開註釋
PermitRootLogin prohibit-password 改為 PermitRootLogin yes
#重啟服務
sudo service ssh restart
用XShell連線即可
也可以修改使用者身份認證中的帳號密碼,可用於直接連線了,免得每次都輸入密碼
注意:有時候重啟虛擬機器後連線不上
虛擬機器ping物理機不通,物理機ping虛擬機器也不通,然後:
sudo /etc/init.d/networking restart
就可以了,我不清楚為什麼開機時系統沒有將網路處理好
複製虛擬機器
我們要建叢集啊,這才一個虛擬機器,這時候VirtualBox的複製功能就可以用了,
右擊已經建立起來的虛擬機器,複製/克隆,按照提示操作即可。想複製幾個複製幾個,你要有什麼機群就有什麼機群,前提是你的物理機夠厲害。
修改ip
記得複製完成後,參照上面的修改ip,防止ip衝突!!!
比如:第二個機子可以是 192.168.56.112,第三個是 192.168.56.113
修改主機名
sudo修改 /etc/hostname
sudo修改 /etc/hosts #為什麼修改這個?防止sudo命令總是說:unable to resolve host
將原來的主機名改為你修改後的主機名
重啟後生效
三機群,後面就可以玩有意思的事情了: