proxmox deploy是基于cli的proxmox部署工具

proxmox-deplo的Python项目详细描述


使用此工具从各种Linux部署cloud-init启用的映像 proxmox上的分布。

proxmox不支持cloud-init启用的即时图像。是的 可以从手动安装的vm创建模板。但是, 大多数主要Linux供应商提供的准备部署映像的可用性,为什么 你应该手动安装虚拟机吗?

工作原理

cloud init取决于两件事:

  1. 配电盘的最小基础安装,通常以 原始或qcow2图像。我称之为cloud image
  2. 映像中安装的cloud-init

cloud init最初是为amazon ec2和openstack创建的。这些平台 对cloud init有本机支持,并提供一个数据源cloud-init 可用于配置虚拟机但是,很少有其他数据源 即使平台本身不支持 cloud-init

proxmox-deploy使用NoCloud数据源。对于这种方法,vm 必须将cloud image的副本作为第一个磁盘,以及只读vfat或 iso9660文件系统作为第二个磁盘在第二个磁盘上,必须有两个 文件:user-datameta-data

proxmox-deploy负责生成user-datameta-data 基于用户输入的文件。proxmox-deploy还负责创建 Proxmox VM并将cloud imagecloud-initimage上载到 正确的数据存储。之后剩下的就是打开虚拟机

如何安装

所有依赖项都可以使用pip安装要全局安装,请执行 根目录:

# pip install proxmox-deploy

或者以普通用户的身份安装到virtualenv中:

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

在以后使用或升级该工具之前,请确保激活virtualenv:

$ . env/bin/activate

以后升级:

$ pip install --upgrade proxmox-deploy

如何使用

安装后,只需使用:

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

回答互动问题。

测试的云图像

我用下面的云图像测试了proxmox-deploy

DistributionVersionStatus
Ubuntu14.0415.1016.04The -amd64-disk1.img images work.
Fedora Server23The qcow2 image works.
openSUSE13.2The -OpenStack-Guest.x86_64.qcow2 image works, provided the VM has at least 512 MB RAM. The minimal disk size is 10 GB. However, the first NIC is called ^{tt15}$, so make sure to select ^{tt15}$ to configure. There is no suse user, login as root.
CentOS

6

7

The CentOS 6 image fails to boot, hanging at “Booting from hard disk”.

The CentOS 7 -GenericCloud.qcow2.xz image works. The minimal disk size will be 8G.

Debian8Neither the qcow2 nor the raw image works. The first boot results in a kernel panic and subsequent boots won’t run ^{tt1}$, rendering the VM unreachable.
FreeBSD

10.1 cloud

10.1 vm

Does not work, cloudbase-init-bsd has no support for the NoCloud datasource.

The official VM images boot at least, but cloud-init is not available. It will boot with with DHCP and a default user/password.

所有发行版都为默认用户提供发行版的名称(ubuntufedoracentosdebianfreebsd,除了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
  • Support for volumes on zfspool stores.
  • Allow specifying an empty VLAN id.
  • Allow specifying a different SSH port for connecting to Proxmox.
0.3
  • Support for volumes on nfs and lvm-thin data stores.
  • Always enable serial console on new VMs. This fixes deploying Ubuntu 16.04 cloud images.
0.2
  • Support for cloud-init Chef handoff (no autorun yet).
  • Improve EnumQuestion output by listing and sorting options.
  • Add option for automatically starting VMs after deployment.
  • Choose defaults for node and storage selection.
  • Support FreeBSD mkisofs command.
0.1
  • Initial release

许可证

proxmox-deploy根据gplv3许可证获得许可。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spring MVC 4.0 RequestMapping无值,基于methodname   java Samsung 10 plus不允许wifi p2p发现   春爪哇。伊奥。IOException:找不到文件   java JasperReport饼图示例   java我试图使用mockito注释来测试我的代码,但无法解决mockito异常   命令行界面Java:制作简单的交互式cli应用程序   java jdk1之间的区别是什么。7_9 9和jdk1。7_271   java重载一个被重写的、继承的方法   java LazyInitializationException春季启动   java Play Framework 2.2.1 3个表之间存在大量关系