Exploring
首页
  • Java

    • 面向对象的思想OOP
    • 浅谈Java反射原理
    • endorsed覆盖JDK中的类
  • 认证与授权

    • LDAP概念和原理介绍
    • OAuth2介绍
  • Impala

    • Impala 介绍
  • MySQL

    • 关于MySQL的一些面试题
    • 解决MySQL不到中文数据
    • 数据库之事务与实现原理
  • Oracle

    • oracle的表空间,用户管理,表操作,函数
    • oracle的查询、视图、索引
    • plsql简单入门
  • Redis

    • 数据类型详解
    • 跳越表
    • 数据持久化的两种方式
  • 共识算法

    • gossip
  • RPC

    • GRPC初识与快速入门
    • ProtocolBuffer基本语法
  • RabbitMQ

    • RabbitMQ入门程序之HelloWorld
    • RabbitMQ之工作模式
  • Zookeeper

    • Zookeeper一文入门
  • Docker

    • Docker入门初体验
  • Maven

    • 把自己的包到Maven中央仓库
    • Maven之自定义插件
  • Nginx

    • nginx的安装
    • nginx的配置文件
    • nignx 的变量
  • Tomcat

    • Servlet3通过SPI进行注册组件
  • Vagrant

    • vagrant 初始化
    • vagrant 常用配置
    • vagrant 自己制作 box
  • Linux

    • 启动方式 Systemd
    • 后台服务
    • 防火墙与 Iptables
  • 设计模式

    • 设计模式-代理
    • 设计模式-单例模式
    • 设计模式-迭代器
  • 分布式

    • CAP 理论
  • 数据结构

    • 数据结构之堆Heap
    • 数据结构之哈希表
    • 数据结构之队列
  • 计算机网络

    • HTTP与HTTPS详解
    • 浅谈DNS协议
    • ISP中的网络层
  • 算法

    • 常用查找算法及Java实现
    • 常用排序算法及Java实现
    • 迪杰斯特拉算法
  • 操作系统

    • 操作系统之进程调度算法
    • 操作系统之进程通讯IPC
    • 操作系统之内存管理
  • 抓包

    • 生成安卓系统证书
  • 加解密

    • 常见加密算法
    • 公开秘钥基础知识
    • RSA 解析
  • Windows

    • scoop 包管理
    • windows-terminal 配置
    • 增强 PowerShell
归档
Github (opens new window)
首页
  • Java

    • 面向对象的思想OOP
    • 浅谈Java反射原理
    • endorsed覆盖JDK中的类
  • 认证与授权

    • LDAP概念和原理介绍
    • OAuth2介绍
  • Impala

    • Impala 介绍
  • MySQL

    • 关于MySQL的一些面试题
    • 解决MySQL不到中文数据
    • 数据库之事务与实现原理
  • Oracle

    • oracle的表空间,用户管理,表操作,函数
    • oracle的查询、视图、索引
    • plsql简单入门
  • Redis

    • 数据类型详解
    • 跳越表
    • 数据持久化的两种方式
  • 共识算法

    • gossip
  • RPC

    • GRPC初识与快速入门
    • ProtocolBuffer基本语法
  • RabbitMQ

    • RabbitMQ入门程序之HelloWorld
    • RabbitMQ之工作模式
  • Zookeeper

    • Zookeeper一文入门
  • Docker

    • Docker入门初体验
  • Maven

    • 把自己的包到Maven中央仓库
    • Maven之自定义插件
  • Nginx

    • nginx的安装
    • nginx的配置文件
    • nignx 的变量
  • Tomcat

    • Servlet3通过SPI进行注册组件
  • Vagrant

    • vagrant 初始化
    • vagrant 常用配置
    • vagrant 自己制作 box
  • Linux

    • 启动方式 Systemd
    • 后台服务
    • 防火墙与 Iptables
  • 设计模式

    • 设计模式-代理
    • 设计模式-单例模式
    • 设计模式-迭代器
  • 分布式

    • CAP 理论
  • 数据结构

    • 数据结构之堆Heap
    • 数据结构之哈希表
    • 数据结构之队列
  • 计算机网络

    • HTTP与HTTPS详解
    • 浅谈DNS协议
    • ISP中的网络层
  • 算法

    • 常用查找算法及Java实现
    • 常用排序算法及Java实现
    • 迪杰斯特拉算法
  • 操作系统

    • 操作系统之进程调度算法
    • 操作系统之进程通讯IPC
    • 操作系统之内存管理
  • 抓包

    • 生成安卓系统证书
  • 加解密

    • 常见加密算法
    • 公开秘钥基础知识
    • RSA 解析
  • Windows

    • scoop 包管理
    • windows-terminal 配置
    • 增强 PowerShell
归档
Github (opens new window)
  • Docker

  • Maven

  • Nginx

  • Tomcat

  • Vagrant

    • vagrant 初始化
    • vagrant 常用配置
    • vagrant 自己制作 box
      • 前言
      • 制作的 centos7 的 box
        • 基础包
        • 设置 root 密码
        • 配置 ssh
        • 安装VirtualBox Guest Additions
        • 安装常用软件
        • 开始打包
      • 使用 box
        • 添加到 box
        • 使用 box 创建
      • 参考文档
  • Linux

  • DevOps
  • Vagrant
unclezs
2022-05-23
0
目录

vagrant 自己制作 box

# 前言

自己打包镜像感觉还是很常用的,毕竟每个人的需求不一样。

vagrant 自己打包镜像的流程就是,在自己机器上执行 vagrant package --base 虚拟机的名称

注意虚拟机的名称指的是 virtualbox 里面的名称,可以通过下面的命令查看。

VBoxManage.exe list vms
1

image-20220522222416856

# 制作的 centos7 的 box

# 基础包

# 自己下载

去 centos官网 (opens new window) 下载一个 centos7 的最小安装的包,文件名带 Mimimal 的,比如 CentOS-7-x86_64-Minimal-2009.iso 。然后用 virtualbox 装上就行。

然后连上 ssh

# 用vagrant的基础包

vagrant init centos/7
vagrant up
vagrant ssh
1
2
3

# 设置 root 密码

比较喜欢用 root 用户登录,所以还是设置上 root 登录

sudo passwd root

su - root
1
2
3

# 配置 ssh

vi /etc/ssh/sshd_config

# 删除 vagrant 自己定义的私钥路径
HostKey /etc/ssh/ssh_host_xxxx

# 开启密码登录
PasswordAuthentication yes

# 重启 ssh
systemctl restart sshd 
1
2
3
4
5
6
7
8
9
10

# 安装VirtualBox Guest Additions

必须安装VirtualBox Guest Additions (opens new window)才能使共享文件夹等内容正常运行。安装还可以提高性能,因为操作系统可以通过知道它在 VirtualBox 中运行来进行一些优化。

# 安装内核,然后重启虚拟机
dnf update -y
dnf install kernel-devel make gcc -y
reboot

# 安装
wget http://download.virtualbox.org/virtualbox/6.1.34/VBoxGuestAdditions_6.1.34.iso
mkdir /media/VBoxGuestAdditions
mount -o loop,ro VBoxGuestAdditions_6.1.34.iso /media/VBoxGuestAdditions
sh /media/VBoxGuestAdditions/VBoxLinuxAdditions.run
rm VBoxGuestAdditions_6.1.34.iso
umount /media/VBoxGuestAdditions
rmdir /media/VBoxGuestAdditions
1
2
3
4
5
6
7
8
9
10
11
12
13

# 安装常用软件

#!/usr/bin/env bash

ip_address=$1

install_basic_app() {
  echo -e "┌\e[33m开始安装软件\e[0m"
  yum update -y
  install_app ifconfig net-tools
  install_app vim
  install_app zsh
  install_app git
  install_app wget
  echo -e "└\e[32m安装软件完成\e[0m"
}

# 安装软件
# @arg1: 用于 check 指令是否存在
# @arg2: 需要安装得软件包
install_app() {
  cmd=$1
  package=${2:-"$cmd"}
  if ! command -v "$cmd" >/dev/null 2>&1; then
    yum install -y "$package"
  fi
}

install_basic_app
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 开始打包

# 查看虚拟机列表
VBoxManage.exe list vms

# 选择我刚才操作的那台 centos7-node-2
vagrant package --base centos7-node-2 --output my-package.box
1
2
3
4
5

image-20220523102010791

# 使用 box

# 添加到 box

# 查看
vagrant box list

# 添加 box
vagrant box add my-package.box --name my-centos7
1
2
3
4
5

image-20220523102629517

# 使用 box 创建

vagrant init my-centos7
1

# 修改配置

注意修改自己的 ssh 账号密码

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "base-centos7"
  config.vm.box_check_update = false
  (1..3).each do |i|	
    config.vm.define "node-#{i}" do |node|
      node.vm.provider "virtualbox" do |vb|
        vb.name = "node-#{i}"
        vb.memory = "1024"
        vb.cpus = 2
      end

      node.ssh.username="root"
      node.ssh.password="9999"

      node.hostmanager.enabled = true
      node.hostmanager.manage_host = true
      node.hostmanager.manage_guest = true
      node.hostmanager.ignore_private_ip = false
      node.hostmanager.include_offline = true
      node.hostmanager.ip_resolver = proc do |vm, resolving_vm|
        "192.168.31.#{30+i}"
      end
      # 定义网络配置
      node.vm.hostname = "node-#{i}"
      node.vm.network "public_network", 
        ip: "192.168.31.#{30+i}", 
        bridge: [
          "Intel(R) I211 Gigabit Network Connection",
          "Intel(R) Wi-Fi 6 AX200 160MHz"
        ],
        adapter: 2 
    end
  end
end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

# 启动

vagrant up
vagrant ssh
1
2

这样就自己定制了一个包了。

# 参考文档

  • virtualbox 的打包文档 (opens new window)

  • 通用打包文档 (opens new window)

在 GitHub 编辑此页 (opens new window)
上次更新: 2024/02/25, 12:11:11
vagrant 常用配置
启动过程

← vagrant 常用配置 启动过程→

Theme by Vdoing | Copyright © 2018-2024 unclezs
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式