VirtualBox+vagrant搭建root權(quán)限,免密登陸的多節(jié)點(diǎn)centos虛擬機(jī)

作為一個(gè)coder,在學(xué)習(xí)技術(shù)過(guò)程中,經(jīng)常需要搭建各種開發(fā)環(huán)境,以及模擬服務(wù)器操作,所以,這個(gè)時(shí)候最好需要搭建好虛擬機(jī)來(lái)完成各種模擬操作。這里我就選擇使用VMware和VirtualBox等搭建虛擬機(jī)后,我最后選擇使用VirtualBox+vagrant來(lái)完成這個(gè)操作,因?yàn)檫@個(gè)兩者都是免費(fèi)的,而且支持很方便的命令行操作,虛擬機(jī)也很穩(wěn)定。

我的環(huán)境是mac,但是此方法window和mac都是通用的,window需要下載一個(gè)bash命令行工具會(huì)好操作一些。

下面分為以下幾個(gè)步驟

  • 1、下載virtualBox和vagrant
  • 2、準(zhǔn)備vagrantFile
  • 3、使用vagrant命令搭建好centos虛擬機(jī)
  • 4、使用root登陸
  • 5、免密登陸
  • 6、安裝docker

步驟一:下載virtualBox和vagrant

步驟二:準(zhǔn)備vagrantFile

  • 在一個(gè)文件新建一個(gè)VagrantFile文件,把下面內(nèi)容復(fù)制到VagrantFile內(nèi)
  • 這里是兩節(jié)點(diǎn),如果需要多個(gè)節(jié)點(diǎn),在boxes配置數(shù)組里面多添加幾個(gè)就好了
boxes = [
    {
        :name => "centos01",
        :eth1 => "192.168.5.41" ,
        :mem => "1024" ,
        :cpu => "1"
    },
    {
        :name => "centos02",
        :eth1 => "192.168.5.42" ,
        :mem => "1024" ,
        :cpu => "1"
    }
]

Vagrant.configure(2) do |config|
    config.vm.box = "centos/7"
    boxes.each do |opts|
        config.vm.define opts[:name] do |config|
            config.vm.hostname = opts[:name]
            config.vm.provider "vmware_fusion" do |v|
                v.vmx["memsize"] = opts[:mem]
                v.vmx["numvcpus"] = opts[:cpu]
            end
            config.vm.provider "virtualbox" do |v|
                v.customize ["modifyvm" , :id , "--memory" , opts[:mem]]
                v.customize ["modifyvm" , :id , "--cpus" , opts[:cpu]]
            end        
            config.vm.network:public_network,ip:opts[:eth1]
        end 
     end
end

步驟三:使用vagrant命令搭建好centos虛擬機(jī)

  • 進(jìn)入放置vagrantFile的,使用vagrant up命令
  • mac可以直接只用terminal,window可以安裝bash工具

注意:

  • 可能vagrant up會(huì)很慢,因?yàn)樾枰螺dcentos的box鏡像,如果出現(xiàn)卡著不動(dòng)的情況,可以去下面提示的地址去手動(dòng)下載box,然后使用vagrant add box的指令,添加到本地,然后,就會(huì)使用剛添加的box,就會(huì)很快了。


    box地址.png
  • 下面這個(gè)地方需要選擇網(wǎng)絡(luò),選擇1


    選擇網(wǎng)絡(luò).png
  • 安裝完畢,virtualBox會(huì)多出一個(gè)虛擬機(jī),如果你配置了3個(gè),結(jié)果只出現(xiàn)了一個(gè),就control+z,停掉,再次運(yùn)行vagrant up


    virtualBox中出現(xiàn)一個(gè)虛擬機(jī).png

步驟四:使用root登陸

由于vagrant默認(rèn)是限定了不允許root用戶登陸,而且只能vagrant up登陸,很多操作都有權(quán)限限制,例如vi /etc/ssh/sshd_config。這就導(dǎo)致了對(duì)這個(gè)虛擬機(jī)沒有100%掌控力的感覺,這就不能忍了。所以接下來(lái)我要獲取root權(quán)限,自己想怎么登陸就怎么登陸。

步驟如下:

  • cd 到剛才那個(gè)vagrant目錄,然后使用vagrant up去登陸,這個(gè)時(shí)候就能用vagrant這個(gè)用戶登陸進(jìn)了虛擬機(jī)。
  • 使用 sudo chmod 777 /etc/ssg/sshd_confg ,給這個(gè)文件添加上可修改的權(quán)限
  • 使用 vi /etc/ssg/sshd_confg 修改這個(gè)文件以下幾個(gè)配置
    • port 22 -- 開啟登陸端口
    • PermitRootLogin yes -- 允許root登陸
    • passwordAuthentication yes -- 允許密碼登陸
  • 修改完后保存重啟sshd讓配置生效:service sshd restart
  • 需要輸入root的密碼,密碼是vagrant
  • 到這里已經(jīng)可以使用root賬號(hào)登陸了,退出虛擬機(jī),使用賬號(hào)root,密碼vagrant登陸
  • 指令:ssh root@192.168.5.66,輸入密碼vagrant ,這個(gè)192的ip可以在虛擬機(jī)中使用 ip addr查看
  • 登陸成功,現(xiàn)在已經(jīng)是root賬戶了。

步驟五:免密登陸

每次主機(jī)登陸虛擬器都需要免密挺麻煩的,這個(gè)時(shí)候一般做法都是使用免密登陸了,步驟如下:

  • 創(chuàng)建ssh key :ssh-keygen -t rsa,一路回車就好
  • /root/.ssh 目錄下添創(chuàng)建文件 touch authorized_keys
  • 宿主機(jī)需要免密登陸,就把宿主機(jī)的public key添加到authorized_keys中。
  • 添加成功后直接使用:ssh root@192.168.5.66就好了,不再輸密碼,然后就可以使用secureCRT等工具去連就好了。

步驟六:安裝docker

docker是開發(fā)學(xué)習(xí)的一個(gè)很重要的工具,所以我這里就裝一下,參考官網(wǎng)的教程

刪除之前的版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
安裝前置工具              
sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  
# 官方源,網(wǎng)速太慢yum斷連,不建議
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 阿里源,國(guó)內(nèi)速度快 (本文設(shè)置這個(gè)源,安裝成功)
$ sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

//安裝容器
 sudo yum install docker-ce docker-ce-cli containerd.io 
 //啟動(dòng)docker
 sudo systemctl start docker
 //查看docker版本
 sudo docker version

按上面的步驟安裝完畢后,如果pull image的時(shí)候如果很慢,可以使用中科大的鏡像源

  • vim /etc/docker/daemon.json
{
   "registry-mirrors" : ["https://docker.mirrors.ustc.edu.cn"]
}
  • 然后重啟docker : service docker restart
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容