跳转到主要内容

proxmox-deploy 是一个基于命令行的Proxmox部署工具

项目描述

使用此工具部署来自各种Linux发行版的启用了cloud-init的镜像到Proxmox。

Proxmox默认不支持启用了cloud-init的镜像。可以手动从已安装的VM创建模板。然而,由于大多数主要Linux供应商都提供了可部署的镜像,为什么还要手动安装VM呢?

工作原理

cloud-init依赖于两个因素

  1. 发行版的最低基础安装,通常以raw或qcow2镜像的形式存在。我将其称为“云镜像”。

  2. 镜像中安装的cloud-init包。

cloud-init最初是为Amazon EC2和OpenStack开发的。这些平台对cloud-init有原生支持,并提供数据源,供cloud-init配置虚拟机使用。然而,即使平台本身没有对cloud-init的原生支持,也有少数替代数据源可供使用。

proxmox-deploy使用NoCloud数据源。对于这种方法,虚拟机必须将云镜像作为第一个磁盘,并将只读的vfat或iso9660文件系统作为第二个磁盘。在这第二个磁盘上,必须有user-datameta-data两个文件。

proxmox-deploy会根据用户输入生成user-datameta-data文件。proxmox-deploy还会负责创建Proxmox虚拟机,并将云镜像和cloud-init镜像上传到正确的数据存储。之后剩下的只是开启虚拟机。

安装方法

所有依赖项都可以使用pip安装。要全局安装,以root用户执行

# pip install proxmox-deploy

或者以虚拟环境(普通用户)安装

$ virtualenv env
$ . env/bin/activate
$ pip install proxmox-deploy

在使用或升级工具之前,请确保激活您的虚拟环境

$ . env/bin/activate

要稍后升级它

$ pip install --upgrade proxmox-deploy

使用方法

安装后,只需使用

$ proxmox-deploy --proxmox-host <hostname> --cloud-images-dir <images directory>

并回答交互式问题。

测试过的云镜像

我已经使用以下云镜像测试了proxmox-deploy

发行版

版本

状态

Ubuntu

14.04 15.10 16.04

带有-amd64-disk1.img的镜像可以工作。

Fedora Server

23

qcow2镜像可以工作。

openSUSE

13.2

-OpenStack-Guest.x86_64.qcow2镜像可以工作,前提是虚拟机至少有512 MB的RAM。最小磁盘大小为10 GB。然而,第一个网络接口卡(NIC)称为eth1,所以请确保选择eth1来配置。没有suse用户,以root用户登录。

CentOS

6

7

CentOS 6镜像无法启动,挂起在“从硬盘启动”。

CentOS 7的-GenericCloud.qcow2.xz镜像可以工作。最小磁盘大小将是8G。

Debian

8

qcow2和raw镜像都不工作。第一次启动会导致内核恐慌,随后的启动不会运行cloud-init,使虚拟机无法访问。

FreeBSD

10.1云镜像

10.1虚拟机

不工作,cloudbase-init-bsd不支持NoCloud数据源。

官方虚拟机镜像至少可以启动,但cloud-init不可用。它将以DHCP和默认用户/密码启动。

所有发行版都提供了一个名为发行版名称(ubuntufedoracentosdebianfreebsd)的默认用户,except openSUSE仅有一个root用户。

依赖项

  • Proxmox VE 4.1或更高版本

  • Python 2.7

  • proxmoxer作为Proxmox API客户端

  • openssh-wrapper用于与Proxmox API通信和执行命令。

  • Jinja2用于生成user-datameta-data文件。

  • configobj用于读取配置文件。

  • pytz用于时区名称。

  • genisoimage (Linux) 或 mkisofs (FreeBSD) 命令。

请注意,我们需要通过SSH访问Proxmox服务器来执行各种任务。我们还通过SSH使用pveshpvesm命令分别与Proxmox API和数据存储进行接口交互。proxmox-deploy在登录时不会询问密码,因此必须预先配置适当的SSH代理和SSH密钥访问。

变更日志

0.4.0

  • 支持zfspool存储上的卷。

  • 允许指定一个空的VLAN ID。

  • 允许指定不同的SSH端口以连接到Proxmox。

0.3

  • 支持nfs和lvm-thin数据存储上的卷。

  • 始终在新的虚拟机上启用串行控制台。这修复了部署Ubuntu 16.04云镜像的问题。

0.2

  • 支持cloud-init Chef移交(尚未自动运行)。

  • 通过列出和排序选项来改进EnumQuestion输出。

  • 添加在部署后自动启动虚拟机的选项。

  • 为节点和存储选择选择默认值。

  • 支持FreeBSD mkisofs 命令。

0.1

  • 初始发布

许可证

proxmox-deploy 使用GPLv3许可证。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分布

proxmox-deploy-0.4.0.tar.gz (18.6 kB 查看哈希值)

上传时间

构建分布

proxmox_deploy-0.4.0-py2-none-any.whl (27.7 kB 查看哈希值)

上传时间 Python 2

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面