kubevirt.core.kubevirt_vm 模块 – 创建或删除 KubeVirt 虚拟机
注意
此模块是 kubevirt.core 集合 (版本 2.1.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install kubevirt.core
。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。
要在剧本中使用它,请指定: kubevirt.core.kubevirt_vm
。
概要
使用 Kubernetes Python 客户端对 KubeVirt 虚拟机执行创建或删除操作。
将选项作为模块参数传递以创建虚拟机。
使用配置文件、证书、密码或令牌进行身份验证。
支持检查模式。
要求
执行此模块的主机需要以下要求。
python >= 3.9
kubernetes >= 28.1.0
PyYAML >= 3.11
jsonpatch
参数
参数 |
注释 |
---|---|
指定要在 仅当 |
|
用于向 API 进行身份验证的令牌。 也可以通过 |
|
用于设置 KubeVirt 的 API 版本。 默认值: |
|
用于向 API 进行身份验证的 CA 证书的路径。必须提供完整的证书链以避免证书验证错误。 也可以通过 |
|
用于向 API 进行身份验证的证书的路径。 也可以通过 |
|
用于向 API 进行身份验证的密钥文件的路径。 也可以通过 |
|
配置文件中找到的上下文名称。 也可以通过 |
|
指定 参见 https://kubevirt.io/api-reference/main/definitions.html#_v1_datavolumetemplatespec |
|
配置删除对象时的行为。 仅当 |
|
指定删除操作必须满足的条件。 |
|
指定目标对象的资源版本。 |
|
指定目标对象的 |
|
用于控制如何删除依赖对象。 如果未指定,将使用对象类型的默认策略。这可能因对象类型而异。 选项
|
|
提供用于访问 API 的 URL。 也可以通过 |
|
要为操作模拟的组。 也可以通过 |
|
要为操作模拟的用户名。 也可以通过 |
|
指定 仅当 |
|
现有 Kubernetes 配置文件的路径。如果未提供,并且未提供其他连接选项,Kubernetes 客户端将尝试从 ~/.kube/config 加载默认配置文件。 也可以通过环境变量 可以使用分隔符 Kubernetes配置可以作为字典提供。此功能需要python kubernetes客户端版本 >= 17.17.0。 |
|
指定要设置在 |
|
指定 |
|
不应该通过代理的主机/域名/IP/CIDR 的逗号分隔列表。 也可以通过环境变量 请注意,此模块不会从环境中获取典型的代理设置(例如 此功能需要 示例值为 |
|
是否保存kube config刷新令牌。 也可以通过环境变量 当k8s上下文使用具有刷新令牌的用户凭据(如oidc或gke/gcloud auth)时,令牌由k8s python客户端库刷新,但默认情况下不会保存。因此,旧的刷新令牌可能会过期,下一次身份验证可能会失败。将此标志设置为true将告诉k8s python客户端将新的刷新令牌保存到kube config文件中。 默认情况下禁用。 选项
|
|
指定 仅当 |
|
用于连接的HTTP代理的URL。 也可以通过环境变量 请注意,此模块不会从环境中获取典型的代理设置(例如 |
|
用于基本身份验证头的冒号分隔的用户名:密码。 也可以通过环境变量 |
|
用于代理基本身份验证头的冒号分隔的用户名:密码。 也可以通过环境变量 |
|
表示所需用户代理的字符串,例如foo/1.0。 也可以通过环境变量 |
|
指定 参见 https://kubevirt.io/api-reference/main/definitions.html#_v1_virtualmachineinstancespec |
|
确定是否应创建、修补或删除对象。 设置为 如果设置为 如果设置为 选项
|
|
提供用于与API进行身份验证的用户名。 也可以通过环境变量 |
|
是否等待 选项
|
|
注释
注意
当
validate_certs=yes
时,为避免SSL证书验证错误,必须通过ca_cert
或kubeconfig
文件提供API服务器的完整证书链。
示例
- name: Create a VirtualMachine
kubevirt.core.kubevirt_vm:
state: present
name: testvm
namespace: default
labels:
app: test
instancetype:
name: u1.medium
preference:
name: fedora
spec:
domain:
devices:
interfaces:
- name: default
masquerade: {}
- name: bridge-network
bridge: {}
networks:
- name: default
pod: {}
- name: bridge-network
multus:
networkName: kindexgw
volumes:
- containerDisk:
image: quay.io/containerdisks/fedora:latest
name: containerdisk
- cloudInitNoCloud:
userData: |-
#cloud-config
# The default username is: fedora
ssh_authorized_keys:
- ssh-ed25519 AAAA...
name: cloudinit
- name: Create a VirtualMachine with a DataVolume template
kubevirt.core.kubevirt_vm:
state: present
name: testvm-with-dv
namespace: default
labels:
app: test
instancetype:
name: u1.medium
preference:
name: fedora
data_volume_templates:
- metadata:
name: testdv
spec:
source:
registry:
url: docker://quay.io/containerdisks/fedora:latest
storage:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
spec:
domain:
devices: {}
volumes:
- dataVolume:
name: testdv
name: datavolume
- cloudInitNoCloud:
userData: |-
#cloud-config
# The default username is: fedora
ssh_authorized_keys:
- ssh-ed25519 AAAA...
name: cloudinit
wait: true
- name: Delete a VirtualMachine
kubevirt.core.kubevirt_vm:
name: testvm
namespace: default
state: absent
返回值
公共返回值已在此处记录,以下是此模块特有的字段
键 |
描述 |
---|---|
已创建的对象。在删除情况下将为空。 返回:成功 |
|
返回:成功 示例: |
|
在Kubernetes API上执行的方法。 返回:成功 |