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