寫在前面
利用vagrant保持開發(fā)生產(chǎn)環(huán)境一致是一個(gè)很好的方法进泼,不過vagrant官網(wǎng)上的box文件下載是真的很慢,因此蜈块,這里教大家如何自制box文件曾沈。
這篇文章你會(huì)接觸到:
- vagrant使用基礎(chǔ)
- 如何定制vagrantfile
- 如何設(shè)置CentOS 7
- Virtualbox使用基礎(chǔ)
- 如何利用vagrant打包CentOS 7成box文件
學(xué)習(xí)前提,已經(jīng)會(huì)使用Virtualbox烙博,并且安裝了CentOS 7瑟蜈,如果不會(huì)可以看我上一篇文章: VirtualBox下安裝CentOS7系統(tǒng)
另外,你要安裝好vagrant, 官網(wǎng)
制作環(huán)境: - window 10
- vagrant 2.2.2
- virtualbox 5.2.8
一渣窜、 添加新用戶
啟動(dòng)創(chuàng)建好的CentOS 7新系統(tǒng)铺根,輸入帳號(hào)密碼:
添加用戶,按照提示輸入兩次密碼乔宿,用戶:vagrant, 密碼也是:vagrant, 注意位迂,root用戶的密碼也要是vagrant, 然后再設(shè)置用戶權(quán)限:
useradd vagrant #添加vagrant用戶
passwd vagrant #設(shè)置vagrant密碼
groupadd admin #添加admin用戶組
usermod -G admin vagrant #添加vagrant進(jìn)admin用戶組
二、設(shè)置sudoers
添加vagrant用戶進(jìn)入/etc/sudoers,不用密碼登錄
echo 'vagrant ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers # 追加信息到/etc/sudoers
三囤官、更改網(wǎng)絡(luò)配置冬阳,設(shè)置開機(jī)啟動(dòng)
將ifcfg-enp0s3的ONBOOT=no,改為ONBOOT=yes
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
其實(shí)党饮,如果是按照我上一篇文章:VirtualBox下安裝CentOS7系統(tǒng) 安裝的系統(tǒng)肝陪,這一步是不用配置的,打開文件可以看到onboot設(shè)置已經(jīng)是yse了刑顺。
ping www.baidu.com #測(cè)試網(wǎng)絡(luò)是否正常
四氯窍、關(guān)閉防火墻
centos7中默認(rèn)用的是firewalld做防火墻,開發(fā)的box可以直接禁用掉firewalld
systemctl stop firewalld.service
systemctl disable firewalld.service
五蹲堂、安裝必備軟件
當(dāng)然是個(gè)人喜好狼讨,不過這些都很有用,最好裝上:
yum install -y wget
六柒竞、添加vagrant's public key
mkdir -m 0700 -p /home/vagrant/.ssh
curl https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub >> /home/vagrant/.ssh/authorized_keys
chmod 0600 /home/vagrant/.ssh/authorized_keys
七政供、安裝 virtualBox guest addition
由于我們安裝的系統(tǒng)是無界面的,因此只能通過命令行安裝:
yum clean all # 清空yum緩存并強(qiáng)制重讀任何改變過的配置文件
yum groupinstall "Development tools" # 安裝開發(fā)工具朽基,這個(gè)工具會(huì)安裝一些常用的開發(fā)編譯工具, 后面要用布隔,如 gcc,git
wget http://download.virtualbox.org/virtualbox/5.2.8/VBoxGuestAdditions_5.2.8.iso # 這里的5.2.8對(duì)應(yīng)的是virtualbox的版本號(hào)稼虎,可以根據(jù)自己的版本號(hào)更改
sudo mkdir /media/VBoxGuestAdditions
sudo mount -o loop,ro VBoxGuestAdditions_5.2.8.iso /media/VBoxGuestAdditions
sudo sh /media/VBoxGuestAdditions/VBoxLinuxAdditions.run
rm VBoxGuestAdditions_5.2.8.iso
sudo umount /media/VBoxGuestAdditions
sudo rmdir /media/VBoxGuestAdditions
八衅檀、清理操作
清除剛剛做的操作留下的一些內(nèi)容,保持系統(tǒng)干凈
yum clean all # 清除yum操作緩存
rm -rf /tmp/* # 清除tmp下的零時(shí)文件
rm -f /var/log/wtmp /var/log/btmp # 清除日志
history -c # 清除歷史
shutdown -h now # 立即關(guān)機(jī)
九霎俩、 制作Vagrant Box
在宿主機(jī)上cmd輸入以下內(nèi)容:
vagrant package --output centos-7.box --base CentOS7_1
--output后面是打包成box的文件名哀军,--base是virtualbox里的centos名稱
十、測(cè)試
創(chuàng)建新的目錄打却,用vagrant啟動(dòng)centos杉适。
mkdir centos-7 # 創(chuàng)建目錄
cd centos-7 # 進(jìn)入目錄
vagrant init centos-7 # 創(chuàng)建新的環(huán)境
vagrant box add centos-7 C:/Users/steven/centos-7.box # 添加新的box
這里目錄里會(huì)出現(xiàn)一個(gè)vagrantfile, 修改文件:
Vagrant.configure("2") do |config|
config.vm.box = "centos-7" # 虛擬機(jī)上出現(xiàn)的名字
config.vm.hostname = "WEB"
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
config.ssh.insert_key = false
config.ssh.private_key_path = ["~/.ssh/id_rsa"]
config.vm.provision "file", source: "~/.ssh/id_rsa.pub", destination: "~/.ssh/authorized_keys"
config.vm.synced_folder ".", "/vagrant", disabled: true
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--name", "centos7-learn", "--memory", "1536"]
end
end
簡(jiǎn)單配置好,可以啟動(dòng)了.
# 啟動(dòng)虛擬機(jī),第一次啟動(dòng)會(huì)比較久
vagrant up
# 執(zhí)行vagrantfile里的命令学密,把本地的id_ras.pub傳到虛擬機(jī)里淘衙,
# 不用這一步,沒辦法使用vagrant ssh 直接登錄腻暮,要輸入密碼彤守,執(zhí)行了這一步,就可以免密登錄
vagrant provision
# 登錄虛擬機(jī)
vagrant ssh
至此哭靖,成功進(jìn)入系統(tǒng)具垫,配置成功。雖然已經(jīng)盡量把配置過程中的坑寫出來试幽,但是實(shí)際配置過程中應(yīng)該還會(huì)有問題出現(xiàn)筝蚕,大家有什么疑問,歡迎來咨詢。