cloudscale_ch.cloud.server 模块 – 管理 cloudscale.ch IaaS 服务上的服务器
注意
此模块是 cloudscale_ch.cloud 集合 (版本 2.4.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install cloudscale_ch.cloud
。
要在 playbook 中使用它,请指定: cloudscale_ch.cloud.server
。
cloudscale_ch.cloud 1.0.0 中的新增功能
概要
在 cloudscale.ch IaaS 服务上创建、更新、启动、停止和删除服务器。
别名:cloudscale_server
参数
参数 |
注释 |
---|---|
调用 cloudscale.ch API 的超时时间(秒)。 这也可以在 默认值: |
|
cloudscale.ch API 令牌。 这也可以在 |
|
cloudscale.ch API URL。 这也可以在 默认值: |
|
大容量存储卷的大小(GB)。 如果未设置,则没有大容量存储卷。 |
|
服务器的类型。 |
|
允许在必要时停止正在运行的服务器以进行更新。 选项
|
|
用于创建服务器的镜像。 |
|
指定要附加到服务器的接口的网络接口对象列表。有关更多详细信息,请参见 https://www.cloudscale.ch/en/api/v1/#interfaces-attribute-specification。 |
|
附加专用网络接口并配置子网和/或 IP 地址。 |
|
接口的静态 IP 地址。使用 '[]' 可避免通过 DHCP 分配 IP 地址。 |
|
将从中分配地址的子网的 UUID。 |
|
在由 UUID 标识的网络上创建网络接口。使用“public”代替 UUID 来附加公共网络接口。如果在 addresses 下提供了子网,则可以省略。 |
|
服务器名称。 需要 *name* 或 *uuid* 之一。 |
|
服务器密码。 |
|
服务器组的 UUID 或名称列表。 |
|
SSH 公钥列表。 在此处使用 .pub 文件的完整内容。 |
|
服务器的状态。 选项
|
|
与服务器关联的标签。将其设置为 |
|
在公共网络接口上启用 IPv6。 选项
|
|
将专用网络接口附加到服务器。 选项
|
|
将公共网络接口附加到服务器。 选项
|
|
要用于服务器的 Cloud-init 配置 (cloud-config) 数据。 |
|
服务器的 UUID。 需要 *name* 或 *uuid* 之一。 |
|
根卷的大小(GB)。 默认值: |
|
服务器所在的区域(例如 |
备注
注意
如果提供了 *uuid* 选项,则它优先于 *name* 用于服务器选择。这允许更新服务器的名称。
如果没有提供 *uuid* 选项,则 *name* 用于服务器选择。如果存在多个具有此名称的服务器,则执行将中止。
只有 *name* 和 *flavor* 会在更新时进行评估。
必须给出 *force=true* 选项才能允许重新引导现有的正在运行的服务器以应用更改。
所有操作均使用 cloudscale.ch 公共 API v1 执行。
有关详细信息,请参阅完整的 API 文档:https://www.cloudscale.ch/en/api/v1。
所有操作都需要有效的 API 令牌。您可以使用 cloudscale.ch 控制面板在 https://control.cloudscale.ch 创建任意数量的令牌。
示例
# Create and start a server with an existing server group (shiny-group)
- name: Start cloudscale.ch server
cloudscale_ch.cloud.server:
name: my-shiny-cloudscale-server
image: debian-10
flavor: flex-4-4
ssh_keys:
- ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
server_groups: shiny-group
zone: lpg1
use_private_network: true
bulk_volume_size_gb: 100
api_token: xxxxxx
# Start another server in anti-affinity (server group shiny-group)
- name: Start second cloudscale.ch server
cloudscale_ch.cloud.server:
name: my-other-shiny-server
image: ubuntu-16.04
flavor: flex-8-2
ssh_keys:
- ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
server_groups: shiny-group
zone: lpg1
api_token: xxxxxx
# Force to update the flavor of a running server
- name: Start cloudscale.ch server
cloudscale_ch.cloud.server:
name: my-shiny-cloudscale-server
image: debian-10
flavor: flex-8-2
force: true
ssh_keys:
- ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
use_private_network: true
bulk_volume_size_gb: 100
api_token: xxxxxx
register: server1
# Stop the first server
- name: Stop my first server
cloudscale_ch.cloud.server:
uuid: '{{ server1.uuid }}'
state: stopped
api_token: xxxxxx
# Delete my second server
- name: Delete my second server
cloudscale_ch.cloud.server:
name: my-other-shiny-server
state: absent
api_token: xxxxxx
# Start a server and wait for the SSH host keys to be generated
- name: Start server and wait for SSH host keys
cloudscale_ch.cloud.server:
name: my-cloudscale-server-with-ssh-key
image: debian-10
flavor: flex-4-2
ssh_keys:
- ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
api_token: xxxxxx
register: server
until: server is not failed
retries: 5
delay: 2
# Start a server with two network interfaces:
#
# A public interface with IPv4/IPv6
# A private interface on a specific private network with an IPv4 address
- name: Start a server with a public and private network interface
cloudscale_ch.cloud.server:
name: my-cloudscale-server-with-two-network-interfaces
image: debian-10
flavor: flex-4-2
ssh_keys:
- ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
api_token: xxxxxx
interfaces:
- network: 'public'
- addresses:
- subnet: UUID_of_private_subnet
# Start a server with a specific IPv4 address from subnet range
- name: Start a server with a specific IPv4 address from subnet range
cloudscale_ch.cloud.server:
name: my-cloudscale-server-with-specific-address
image: debian-10
flavor: flex-4-2
ssh_keys:
- ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
api_token: xxxxxx
interfaces:
- addresses:
- subnet: UUID_of_private_subnet
address: 'A.B.C.D'
# Start a server with two network interfaces:
#
# A public interface with IPv4/IPv6
# A private interface on a specific private network with no IPv4 address
- name: Start a server with a private network interface and no IP address
cloudscale_ch.cloud.server:
name: my-cloudscale-server-with-specific-address
image: debian-10
flavor: flex-4-2
ssh_keys:
- ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
api_token: xxxxxx
interfaces:
- network: 'public'
- network: UUID_of_private_network
addresses: []
返回值
常见的返回值已在 此处 记录,以下是此模块特有的字段:
Key |
描述 |
---|---|
此服务器使用的类型 返回值:当 state != absent 时返回成功 示例: |
|
获取此服务器详细信息的API URL 返回值:当 state != absent 时返回成功 示例: |
|
用于启动此服务器的镜像 返回值:当 state != absent 时返回成功 示例: |
|
连接到服务器的网络端口列表 返回值:当 state != absent 时返回成功 示例: |
|
服务器的显示名称 返回值:成功 示例: |
|
服务器组列表 返回值:当 state != absent 时返回成功 示例: |
|
SSH主机密钥指纹列表。在从服务器检索主机密钥之前,将为null。 返回值:当 state != absent 时返回成功 示例: |
|
SSH主机密钥列表。在从服务器检索主机密钥之前,将为null。 返回值:当 state != absent 时返回成功 示例: |
|
服务器的当前状态 返回值:成功 示例: |
|
与服务器关联的标签。 返回值:成功 示例: |
|
此服务器的唯一标识符 返回值:成功 示例: |
|
连接到服务器的卷列表 返回值:当 state != absent 时返回成功 示例: |
|
用于启动此服务器的区域 返回值:当 state != absent 时返回成功 示例: |