前言
為了日常更好的學(xué)習(xí)、測試,又不想付出云主機(jī)等開銷,搭建一個本地測試環(huán)境無疑是個明智的選擇。再結(jié)合GitHub、Jenkins、Docker等工具,進(jìn)行持續(xù)集成、資源隔離,既可以快速的構(gòu)建、部署自己的項目,又可以迅速的環(huán)境恢復(fù)。仔細(xì)想了一下,簡直不能更好。
測試環(huán)境描述
本地環(huán)境:
操作系統(tǒng):Windows7 企業(yè)版
處理器:i5-3340M 2.70GHz
內(nèi)存:16GB
系統(tǒng)類型:64位
硬盤:總量300GB,剩余100GB
虛擬化軟件:Oracle VM VirtualBox 5.0.20
遠(yuǎn)程訪問軟件:SecureCRT 6.6.1
測試環(huán)境:
操作系統(tǒng):CentOS 7.3
Linux內(nèi)核:3.10
系統(tǒng)鏡像:CentOS-7-x86_64-Minimal-1611.iso
CPU核數(shù):1核
內(nèi)存:2GB
系統(tǒng)類型:64位
硬盤:20GB
創(chuàng)建虛擬機(jī)
1、安裝操作系統(tǒng)
具體設(shè)置:
(PS:右CTRL切換鼠標(biāo)焦點)
系統(tǒng)類型:local-4(隨意)、Linux、Red Hat (64-bit)
內(nèi)存大?。?048MB(2GB)
虛擬硬盤:現(xiàn)在創(chuàng)建虛擬硬盤
虛擬硬盤文件類型:VDI(VirtualBox磁盤映像)
虛擬硬盤分配方式:動態(tài)分配(PS:固定大小創(chuàng)建真的很慢,因為我要創(chuàng)建4、5個,實在等不起)
虛擬硬盤位置大?。簂ocal-4(隨意)、20GB(最好不要用默認(rèn)8GB,容易不夠用,因為上面是動態(tài)分配,大點沒關(guān)系)
語言:中文、簡體中文(中國)
安裝位置:不變
用戶設(shè)置:ROOT密碼(secret)、不會創(chuàng)建任何用戶
截圖:
Linux、Red Hat (64-bit)
內(nèi)存:2048MB(2GB)
默認(rèn)設(shè)置:現(xiàn)在創(chuàng)建虛擬硬盤
默認(rèn)設(shè)置:VDI(VirtualBox磁盤映像)
默認(rèn)設(shè)置:動態(tài)分配
硬盤大?。?0GB(最好不要用默認(rèn)8GB,容易不夠用)
2、配置IP
配置動態(tài)IP
日常使用經(jīng)常會需要通過IP來訪問虛機(jī)及運(yùn)行在其上的服務(wù),因此需要給虛機(jī)配置IP。
網(wǎng)上有很多方法,最簡單的方法就是在安裝完成之后,先關(guān)機(jī),再添加一個新的虛擬網(wǎng)卡即可,啟動后就會發(fā)現(xiàn)多了一個IP,該IP是動態(tài)IP(可以通過ip a命令,查看是否包含dynamic來區(qū)分)。
截圖:
網(wǎng)卡1(原網(wǎng)卡)保留不動,連接方式:網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT),以后做端口轉(zhuǎn)發(fā)時會用到
網(wǎng)卡2-啟用網(wǎng)絡(luò)連接,連接方式:僅主機(jī)(Host-Only)適配器
查看靜態(tài)IP,命令:ip a,192.168.56.101
配置靜態(tài)IP
除了上述方法,也可以通過修改網(wǎng)卡的配置文件來為虛機(jī)配置靜態(tài)IP,在要創(chuàng)建多個虛機(jī)來組成測試環(huán)境的情況下,建議采用這種方式。
具體步驟:
查看網(wǎng)卡信息,命令:ip a,記錄網(wǎng)卡名和MAC地址
修改網(wǎng)卡的配置文件:/etc/sysconfig/network-scripts/ifcfg-enp0s8、ifcfg-enp0s3,若沒有,則新建。
重啟network服務(wù),命令:systemctl restart network.service
重啟虛機(jī)
將/etc/sysconfig/network-scripts/ifcfg-enp0s3中的ONBOOT=no改為yes,否則yum可能會不正常。
修改(或新建)后的網(wǎng)卡配置文件(/etc/sysconfig/network-scripts/ifcfg-enp0s8)如下:
截圖:
查看網(wǎng)卡信息,命令:ip a,記錄網(wǎng)卡名和MAC地址
重啟虛機(jī)后的網(wǎng)卡信息,沒有了原來的dynamic,表示靜態(tài)IP配置成功
3、配置遠(yuǎn)程訪問
Virtual Box等虛擬機(jī)軟件的控制界面雖然也能訪問虛機(jī),甚至某些操作系統(tǒng)還有可視化界面,但是對于一個合格的程序員來說,為了掌握Linux下的操作,以及追求流程的操作體驗,使用遠(yuǎn)程訪問工具來訪問虛機(jī),無疑是一個Good idea。
具體步驟:
Alt + C(或者從工具欄打開)打開連接窗口,點擊“新建會話”
連接協(xié)議:SSH2
主機(jī)名:192.168.56.101,端口:22,防火墻:None,用戶名:root
文件傳輸協(xié)議:SFTP
會話名稱:192.168.56.101(可自定義),描述:無
用戶名:root,密碼:(secret),保存密碼
確認(rèn)保存(暫無截圖)
檢查確認(rèn)IP,命令:ip a
截圖:
Alt + C(或者從工具欄打開)打開連接窗口,點擊“新建會話”
連接協(xié)議:SSH2
主機(jī)名:192.168.56.101,端口:22,防火墻:None,用戶名:root
文件傳輸協(xié)議:SFTP
會話名稱:192.168.56.101(可自定義),描述:無
用戶名:root,密碼:(secret),保存密碼
檢查確認(rèn)IP,命令:ip a
4、修改主機(jī)名
由于在許多測試過程中,都需要用到多個虛機(jī),在使用遠(yuǎn)程訪問工具時,不容易區(qū)分,所以需要修改主機(jī)名,方便日常管理和區(qū)分。CentOS 7提供了主機(jī)名工具:hostnamectl,通過這個工具,可以很方便的管理主機(jī)名。
4.1、永久修改主機(jī)名:
hostnamectl set-hostname local-56-101
4.2、重新登陸或Alt + C(新建會話),可以確認(rèn)主機(jī)名是否修改成功:
附:hostnamectl使用方法:
hostnamectl --help
安裝工具
不論是進(jìn)行項目開發(fā),還是進(jìn)行多機(jī)器的運(yùn)維、測試,使用合適的工具,都能極大的提高日常開發(fā)效率。所以在創(chuàng)建完虛機(jī)后,首先需要安裝一些實用、方便的工具。
lrzsz
lrzsz是一個Linux下類似ftp的用于文件上傳、下載的工具,通過lrzsz可以很方便的在本地宿主機(jī)與VirtualBox上的虛機(jī)直接傳輸文件。
安裝:
yum install lrzsz -y
命令:
從本機(jī)上傳文件:rz
從虛機(jī)下載文件:sz [文件名]
Vim
Vim在Vi的基礎(chǔ)上添加了很多特性,雖然系統(tǒng)默認(rèn)集成了Vi,但還是推薦安裝Vim,并修改配置文件,來對字符集、編碼、tab鍵等進(jìn)行設(shè)置。
安裝:
yum install vim -y
配置:
bind-utils與net-tools
bind-utils與net-tools分別包含了nslookup與ifconfig等常用的網(wǎng)絡(luò)相關(guān)的工具。
安裝:
yum install bind-utils net-tools -y
Git
Git是一個開源、免費(fèi)的分布式版本控制系統(tǒng),可以高速、有效的處理各種規(guī)模的項目的版本管理。
安裝:
yum install git -y
Ansible
Ansible是一款基于Python開發(fā)的自動化運(yùn)維工具,可以進(jìn)行配置管理、批量部署等功能。對于機(jī)器較多的場景,可以使用Ansible來免去重復(fù)敲命令的煩惱。
安裝:
yum install ansible -y
使用方法:
創(chuàng)建一個工作目錄:~/ansible
在工作目錄中創(chuàng)建一個Inventory文件,即包含各主機(jī)信息的文件
官方文檔
各模塊文檔
PlayBooks文檔
Inventory文檔
Inventory文件說明:
[cluster]是組的別名,可以通過該組名對其下的所有機(jī)器進(jìn)行控制
每一行內(nèi)容分別是:機(jī)器別名、機(jī)器IP、ssh訪問時使用的用戶名、ssh訪問時使用的密碼
創(chuàng)建Inventory文件:
示例:
從創(chuàng)建的Inventory文件(cluster.inv)中獲取機(jī)器信息,并在Inventory文件中的所有機(jī)器上安裝docker,并啟動
ansible all -i cluster.inv -m yum -a “name=docker”
ansible all -i ~/ansible/cluster.inv -m raw -a “systemctl start docker”
Tips:
如果出現(xiàn)第一次ssh訪問出現(xiàn)的輸入yes/or的提示,導(dǎo)致中斷,可以修改ansible的配置文件:/etc/ansible/ansible.cfg,將默認(rèn)的host_key_checking = False改為True。
Docker
Docker是用于開發(fā)、裝載、運(yùn)行應(yīng)用的開放平臺。通過Docker你可以將你的應(yīng)用與架構(gòu)分離。Docker可以幫你更快的裝載代碼、更快的測試、更快的部署,縮短代碼從編寫到運(yùn)行的周期。
安裝:
yum install docker -y
啟動:
systemctl start docker
安裝服務(wù)
MySQL
最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,開發(fā)環(huán)境自然得有一個。推薦5.7版本以后的,支持Json,在表結(jié)構(gòu)設(shè)計上靈活了很多。并且推薦使用docker以容器的方式啟動,如果發(fā)生配置不當(dāng)或使用不當(dāng),可以非常方便、迅速的重置環(huán)境,并且不會對所在虛機(jī)的環(huán)境造成影響。
安裝:
說明:
mysql版本:5.7
容器名:dev_mysql
數(shù)據(jù)目錄:/opt/dev/mysql
Root密碼:root
端口:3307
容器退出后始終重啟
--privileged=true是為了防止因CentOS7中的安全模塊selinux的權(quán)限限制,導(dǎo)致出現(xiàn)“Permission denied”的錯誤
發(fā)布評論請先 登錄
相關(guān)推薦
評論