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