proxmox deploy是基于cli的proxmox部署工具
proxmox-deplo的Python项目详细描述
使用此工具从各种Linux部署cloud-init启用的映像 proxmox上的分布。
proxmox不支持cloud-init启用的即时图像。是的 可以从手动安装的vm创建模板。但是, 大多数主要Linux供应商提供的准备部署映像的可用性,为什么 你应该手动安装虚拟机吗?
工作原理
cloud init取决于两件事:
- 配电盘的最小基础安装,通常以 原始或qcow2图像。我称之为cloud image。
- 映像中安装的cloud-init包
cloud init最初是为amazon ec2和openstack创建的。这些平台 对cloud init有本机支持,并提供一个数据源cloud-init 可用于配置虚拟机但是,很少有其他数据源 即使平台本身不支持 cloud-init。
proxmox-deploy使用NoCloud数据源。对于这种方法,vm 必须将cloud image的副本作为第一个磁盘,以及只读vfat或 iso9660文件系统作为第二个磁盘在第二个磁盘上,必须有两个 文件:user-data和meta-data。
proxmox-deploy负责生成user-data和meta-data 基于用户输入的文件。proxmox-deploy还负责创建 Proxmox VM并将cloud image和cloud-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:
Distribution | Version | Status |
---|---|---|
Ubuntu | 14.0415.1016.04 | The -amd64-disk1.img images work. |
Fedora Server | 23 | The qcow2 image works. |
openSUSE | 13.2 | The -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 | 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. | |
Debian | 8 | Neither 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 | 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. |
所有发行版都为默认用户提供发行版的名称(ubuntu, fedora,centos,debian,freebsd,除了openSUSE只有一个 root用户
依赖关系
- Proxmox VE 4.1或更高版本
- python 2.7版
- proxmoxer作为proxmox api客户端
- openssh-wrapper用于与proxmox api和 执行命令。
- Jinja2用于生成user-data和meta-data文件。
- configobj用于读取配置文件。
- pytz表示时区名称。
- genisoimage(Linux)或mkisofs(freebsd)命令。
请注意,我们需要通过ssh访问proxmox服务器,以执行 各种各样的任务。我们还通过ssh使用pvesh和pvesm命令来 分别与proxmox api和数据存储接口。proxmox-deploy 不会要求输入登录密码,因此需要正确的ssh代理和ssh密钥访问 必须在手动之前配置。
更改日志
0.4.0 |
|
0.3 |
|
0.2 |
|
0.1 |
|
许可证
proxmox-deploy根据gplv3许可证获得许可。