使用debian云映像创建虚拟机 | 您所在的位置:网站首页 › 美国国家科学院院士很厉害吗 › 使用debian云映像创建虚拟机 |
使用Debian云映像创建虚拟机
环境准备
Oracle Virtual Box
Debian GNU/Linux 11 (bullseye)系统
Debian 11 Cloud Image
如果有一台装有Debian 11系统的机器最好,也可以用Windows/WSL2代替,而我用的是vscode devcontainer[1]创建的docker容器来作为工具搭建,配置见下。 ls -al .devcontainer/ devcontainer.json Dockerfile networks/ debian-master # 主节点网络配置 debian-node01 # 从节点网络配置 vboxes/ # virtual box虚拟机 debian-master/ debian-node01/.devcontainer/devcontainer.json { "name": "Cloud Init Environment", "dockerFile": "Dockerfile", "remoteUser": "vscode" }.devcontainer/Dockerfile FROM mcr.microsoft.com/vscode/devcontainers/base:0-bullseye RUN sed -i 's:deb.debian.org:ftp.cn.debian.org:g' /etc/apt/sources.list \ && sed -i 's:security.debian.org:ftp.cn.debian.org:g' /etc/apt/sources.list RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ && apt-get -y install --no-install-recommends \ bash-completion \ cloud-image-utils \ qemu-utils \ && apt-get -y clean && rm -rf /var/lib/apt/lists/* RUN mkdir /images \ && cd /images \ && curl -sSL https://cloud.debian.org/images/cloud/bullseye/latest/debian-11-generic-amd64.qcow2 -O然后从VSCode打开该目录,完成容器环境的搭建。 其中,我直接在容器中,直接从远程获取了Debian的云映像资源(目录/images),如果是自行环境搭建,可以从官网[2]下载。 新建Virtual Box虚拟机由于VBox虚拟机不支持直接在已有文件夹下创建。 打开Oracle VM VirtualBox,新建一个虚拟机。 我将输入名称debian-master(名字随意)。 内存大小选择“512MB”,虚拟硬盘选择“不添加虚拟硬盘”。 进入虚拟机设置,在网络选项卡中,选择启用“网卡2”,选择连接方式“仅主机(Host-Only)网络”。 创建并vmdk虚拟硬盘 qemu-img convert -f qcow2 -O vmdk -o adapter_type=lsilogic /images/debian-11-generic-amd64.qcow2 vboxes/debian-master/root-disk.vmdk 创建NoCloud的iso镜像参考cloud init[3]配置基础用户信息和系统配置(这里我们选用20.4.1版本查询模块设置参数),例如 master-data #cloud-config password: passw0rd # 设置默认用户密码 chpasswd: { expire: False } # 是否强制用户修改初始密码 ssh_pwauth: True # 是否允许通过ssh访问 system_info: default_user: name: sysadmin # 设置默认用户登录名 apt: # 使用中国镜像 primary: - arches: [default] uri: http://ftp.cn.debian.org/debian/ security: - arches: [default] uri: http://ftp.cn.debian.org/debian-security/ sources_list: | deb $PRIMARY $RELEASE main # deb-src $PRIMARY $RELEASE main deb $PRIMARY $RELEASE-updates main # deb-src $PRIMARY $RELEASE-updates main # deb $PRIMARY $RELEASE-backports main # deb-src $PRIMARY $RELEASE-backports main deb $SECURITY $RELEASE-security main # deb-src $SECURITY $RELEASE-security main write_files: - path: /etc/sysctl.d/70-disable-ipv6.conf # 关闭IPv6协议 content: | net.ipv6.conf.all.disable_ipv6 = 1以下是初始网络配置信息设置: networks/debian-master version: 2 ethernets: enp0s8: match: name: enp0s8 addresses: - 192.168.56.10/255.255.255.0 cloud-localds vboxes/debian-master/seed.iso master-data --hostname debian-master --dsmode local --network-config networks/debian-maste 关联虚拟硬盘和配置镜像打开虚拟机设置,在存储选项卡中,在SATA添加注册vboxes/debian-master/root-disk.vmdk虚拟硬盘,在IDE分配光驱选择vboxes/debian-master/seed.iso。 打开虚拟机等待虚拟机启动完成后,可以使用ssh访问192.168.56.10访问到虚拟机,输入刚才master-data配置用户名和密码,默认用户拥有sudo权限。 ssh [email protected]这时已完成安装,并且支持外网访问。 安装apt-cacher-ng安装apt-cacher-ng,使内网节点支持代理更新软件包: sudo apt-get install apt-cacher-ng 配置部署内网节点首先内网节点,我们不需要用户名和密码登录,使用主节点(debian-master)的ssh密钥登录,所以在主节点运行生成密钥对。 ssh-keygen -t rsa -a 2048复制黏贴公钥文本后,修改master-data复制到node-data。 配置apt下载HTTP代理:http://192.168.56.10:3142。 #cloud-config ssh_authorized_keys: # SSH公钥设置 - ssh-rsa AAA..(你的公钥字符串)..ZgE= sysadmin@debian-master system_info: default_user: name: sysadmin # 设置默认用户登录名 apt: # 使用中国镜像 http_proxy: http://192.168.56.10:3142 # 内网代理节点 primary: - arches: [default] uri: http://ftp.cn.debian.org/debian/ security: - arches: [default] uri: http://ftp.cn.debian.org/debian-security/ sources_list: | deb $PRIMARY $RELEASE main # deb-src $PRIMARY $RELEASE main deb $PRIMARY $RELEASE-updates main # deb-src $PRIMARY $RELEASE-updates main # deb $PRIMARY $RELEASE-backports main # deb-src $PRIMARY $RELEASE-backports main deb $SECURITY $RELEASE-security main # deb-src $SECURITY $RELEASE-security main write_files: - path: /etc/sysctl.d/70-disable-ipv6.conf # 关闭IPv6协议 content: | net.ipv6.conf.all.disable_ipv6 = 1重复上述操作建立debian-node01虚拟机,并在网络设置中,启用网络1,使用连接方式“仅主机(Host-Only)网络”具体内容不再概述,以下是相关执行脚本。 qemu-img convert -f qcow2 -O vmdk -o adapter_type=lsilogic /images/debian-11-generic-amd64.qcow2 vboxes/debian-node01/root-disk.vmdk cloud-localds vboxes/debian-node01/seed.iso node-data --hostname debian-node01 --dsmode local --network-config networks/debian-node01 示例项目参考https://gitee.com/rwyc/debian-cloud-init-setups https://code.visualstudio.com/docs/remote/containers ↩︎ https://cloud.debian.org/images/cloud/ ↩︎ https://cloudinit.readthedocs.io/en/20.4.1/ ↩︎ |
CopyRight 2018-2019 实验室设备网 版权所有 |