linux笔记: vagrant使用

关于vagrant和Vagrantfile的使用总结

Posted by Xiaolei.liang on March 2, 2020 本文总阅读量

vagrant使用

安装virtualbox

软件下载地址: https://www.virtualbox.org/wiki/Downloads

下载系统对应版本安装即可。

安装vagrant

软件下载地址:https://www.vagrantup.com/downloads.html

下载系统对应版本安装即可。

下载vagrant box

下载地址:

http://www.vagrantbox.es/
https://app.vagrantup.com/boxes/search?provider=virtualbox

在上面url中搜索自己想要安装的虚拟机box,然后复制对应的url。

下载对应的box到本地,并重命名。

vagrant box add {title} {url}

这样会在本地下载对应的box,并重命名为title。

下载文件默认密码:vagrant

使用vagrant创建虚拟机并启动

两种方式,第一种:

# vagrant box add {title} {url}
# vagrant init {title} # 本地初始化产生Vagrantfile
# vagrant up

第二种:

# vagrant init centos/7 # 直接拉取centos/7的box,初始化产生Vagrntfile
# vagrant up

添加本地文件:

vagrant add hello2 CentOS-7.1.1503-x86_64-netboot.box

或者直接下载到文件位置:~/.vagrant.d/boxes

实践

1. 下载box

# vagrant box add hello2 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box

2. 填写Vagrantfile

# cat Vagrantfile
Vagrant.configure("2") do |config|
    (0..1).each do |i|
        config.ssh.username = 'root'
        config.ssh.password = 'vagrant'
        config.ssh.insert_key = 'true'
        config.vm.define "node#{i}" do |node|
            node.vm.box = "hello2"
            node.vm.hostname="node#{i}"
            config.vm.provision "shell", inline: <<-SHELL
                echo root:root123 | chpasswd 
            SHELL
            # 设置虚拟机的IP
            # node.vm.network "private_network", bridge: "en0: Wi-Fi (AirPort)", ip: "192.168.17.20#{i}"
            # node.vm.network "private_network", type: "dhcp"
            node.vm.network "private_network", bridge: "en0: Wi-Fi (AirPort)", type: "dhcp"
            # VirtaulBox相关配置
            node.vm.provider "virtualbox" do |v|
                v.name = "node#{i}"
                v.memory = 1024
                v.cpus = 1
            end
        end
    end
end
# vagrant up
# vagrant ssh node0 # 或者vagrant ssh node1

vagrant网络

vagrant网络有两类:

  • private_network:使用virtualbox的主机模式。这种模式下,主机物理网卡和虚拟网卡不在同一vlan,物理机和虚拟机互相之间不通,虚拟机之间互通。
  • public_network:使用virtualbox的桥接模式。这种模式下,主机物理网卡和虚拟网卡在同一vlan,即在同一个二层网络,互相之间通过ip互通。

vagrant的命令

  1. 修改Vagrantfile后使生效:vagrant reload 或者 vagrant reload –provision
  2. Vagrantfile修改后增加主机:vagrant up
  3. vagrant文档:https://www.vagrantup.com/docs/