美文网首页
VirtualBox+Vagrant构建ubuntu环境

VirtualBox+Vagrant构建ubuntu环境

作者: melith | 来源:发表于2021-01-05 12:29 被阅读0次

1.安装VirtualBox

下载地址

2.安装Vagrant

下载地址

3.构建ubuntu环境

3.1 构建环境

官方镜像
可以在上面的网址查看自己需要的镜像,但是vagrant默认下载box的方式很慢,所以推荐使用国内的镜像。

在自己电脑上新建一个目录,这个目录会存放一个虚拟机环境,比如 E:\vagrants\ubuntu-focal,通过CMD进入到该目录,执行以下命令

vagrant init ubuntu-focal http://mirrors.ustc.edu.cn/ubuntu-cloud-images/focal/current/focal-server-cloudimg-amd64-vagrant.box

命令执行之后,可以看到E:\vagrants\ubuntu-focal\目录下多了一个文件Vagrantfile
CMD中执行命令ipconfig,找到VirtualBox Host-Only Network对应的IPv4 地址,我这里的地址是192.168.56.1,如图:

ip.png
使用编辑器编辑Vagrantfile,修改config.vm.network的值,这个值就是虚拟机在局域网的网址,建议修改成跟VirtualBox同一网段,即前三个数字跟前面截图中的前三个数字相同,我这里就都是192.168.56,每个虚拟机的IP都要不一样。
config.vm.network "private_network", ip: "192.168.56.2"

接下来启动并连接到虚拟机,进行一些配置

# 启动虚拟机
vagrant up
# 连接到虚拟机
vagrant ssh

虚拟机默认是不允许使用密码登录的,只能使用私钥连接;同时也不允许root用户登录。下面修改成可以使用root用户输入密码登录。

# 切换到root用户
sudo -s
# 修改root用户密码
passwd
# 修改配置
vi /etc/ssh/sshd_config
# 以下两项修改成yes,然后保存
PasswordAuthentication yes
PermitRootLogin yes
# 重启sshd服务
service sshd restart

# 退出虚拟机
exit

# 使用root用户登录
ssh root@192.168.56.2

接下来就可以使用密码登录了,也可以通过root用户登录。

如果不愿意修改,秘钥的地址是E:\vagrants\ubuntu-focal\.vagrant\machines\default\virtualbox\private_key,可以在XShell里导入这个秘钥。

3.2 ubuntu设置

下面进行ubuntu的一些设置,默认使用root用户登录,如果使用vagrant用户,就在所有命令前面加上sudo

# 先备份原来的源列表文件
mv /etc/apt/sources.list /etc/apt/sourses.list.backup

# 写入阿里源地址
tee /etc/apt/sources.list <<-'EOF'
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
EOF

# 更新软件列表
apt update

# 更新软件(把已安装的软件与刚刷新的软件列表中的版本进行对比,如果发现已安装的软件版本太低,就会提示更新)
apt upgrade

# 安装网络相关工具
apt install net-tools

# 查看当前网络
$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::e2:98ff:fe2d:e4ba  prefixlen 64  scopeid 0x20<link>
        ether 02:e2:98:2d:e4:ba  txqueuelen 1000  (Ethernet)
        RX packets 796  bytes 94203 (94.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 575  bytes 104880 (104.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.2  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::a00:27ff:fe0a:698e  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:0a:69:8e  txqueuelen 1000  (Ethernet)
        RX packets 60  bytes 6005 (6.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 76  bytes 9825 (9.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# 重启网卡,这里的enpos8其实是上一个命令结果中inet为你配置的IP的网卡名称
sudo ip link set enp0s8 down
sudo ip link set enp0s8 up

# 安装unzip
apt install unzip

# 查看防火墙状态
ufw status

# 启用防火墙
ufw enable

# 禁用防火墙
ufw disable

3.3安装JDK

下载地址
下载Linux x64 Compressed Archive

# 新建目录
mkdir -p /usr/lib/jvm/
# 将下载的文件上传到该目录,然后解压
sudo tar -zxvf jdk-8u271-linux-x64.tar.gz
# 删除压缩文件
rm -f jdk-8u271-linux-x64.tar.gz
# 修改环境变量
vi /etc/profile
# 将以下内容添加到文件末尾
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_271
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# 使修改生效
source /etc/profile
# 查看是否生效,如果出现java版本信息,则代表生效了
java -version

3.4安装zsh与oh-my-zsh

# 先安装zsh
apt install zsh

 # 浏览器打开以下网址
 https://github.com/ohmyzsh/ohmyzsh/blob/master/tools/install.sh
 
 # 新建文件install.sh,将上面网址的内容粘贴进去
 vim install.sh

# 安装oh-my-zsh,安装结束后会询问是否使用zsh作为默认命令shell,选择是
sh install.sh

# zsh不会调用/etc/profile,所以需要配置一下java环境变量,同时修改下主题
vi .zshrc
# 修改主题
ZSH_THEME="steeef"
# 添加环境变量配置到末尾,然后保存
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_271
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

# 使修改生效
source .zshrc

更多zsh和oh-my-zsh的内容自行百度

3.5安装docker

# 移除老版本
sudo apt-get remove docker docker-engine docker.io containerd runc

# 安装前先更新下软件列表啥的
sudo apt-get update

# 安装
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
    
# Add Docker’s official GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 设置仓库
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

# 安装docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 查看docker版本
docker -v

docker使用阿里云镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://iagfhra6.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

3.6虚拟机打包复用

我们从网上下载了box之后,可以进行修改,配置成自己喜欢的样子之后,创建一个新的box,之后都以这个新的box为模板创建虚拟机

# 进入路径
E:
cd E:\vagrants\ubuntu-focal
# 停掉虚拟机
vagrant halt
# 打包
vagrant package
# 添加到box列表,这里的ubuntu是box的名称,后面跟着的是box的相对路径,
vagrant box add ubuntu package.box
# 查看当前的box列表
vagrant box list
# 删除本地环境中指定的box
vagrant box remove box-name

# 创建并进入新目录E:\vagrants\ubuntu,使用本地box创建新的虚拟机,下面命令中的的ubuntu就是上面box列表中的名称
vagrant init ubuntu

相关文章

网友评论

      本文标题:VirtualBox+Vagrant构建ubuntu环境

      本文链接:https://www.haomeiwen.com/subject/xwuioktx.html