Skip to content

Latest commit

 

History

History
1236 lines (770 loc) · 33.2 KB

15-6.Salt-Cloud-Getting-Started-with-Azure.md

File metadata and controls

1236 lines (770 loc) · 33.2 KB

Getting Started With Azure - Azure入门

New in version 2014.1.0.

Azure是Microsoft提供的云服务,提供虚拟机、SQL服务、媒体服务等。 本文档介绍了如何使用Salt Cloud在Azure上创建使用Salt管理的虚拟机。

有关Azure的更多信息,请访问 http://www.windowsazure.com/。

Dependencies - 依赖

  • Microsoft Azure SDK for Python >= 1.0.2
  • The python-requests library, for Python < 2.7.9.
  • A Microsoft Azure account
  • OpenSSL (to generate the certificates)
  • Salt

Configuration - 配置

/etc/salt/cloud.providers.d/azure.conf文件中设置云平台服务端provider的配置信息:

# Note: This example is for /etc/salt/cloud.providers.d/azure.conf

my-azure-config:
  driver: azure
  subscription_id: 3287abc8-f98a-c678-3bde-326766fd3617
  certificate_path: /etc/salt/azure.pem

  # Set up the location of the salt master
  #
  minion:
    master: saltmaster.example.com

  # Optional
  management_host: management.core.windows.net

所使用的证书必须由用户生成。 OpenSSL可用于创建管理证书。 需要两个证书:一个.cer文件(上载到Azure)和一个.pem文件,该文件存储在本地。

要创建.pem文件,请执行以下命令:

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/salt/azure.pem -out /etc/salt/azure.pem

创建 .cer 文件, 请执行以下命令:

openssl x509 -inform pem -in /etc/salt/azure.pem -outform der -out /etc/salt/azure.cer

创建这些文件之后,.cer文件将需要通过管理门户的“设置”部分内“管理证书”选项卡的“上传管理证书”操作上载到Azure。

可选地,如果需要设置区域,则可以配置management_host

注意: Changed in version 2015.8.0.

云服务商provider定义中的provider参数已重命名为driver。 进行此更改是为了避免与云profile配置文件定义中使用的provider参数混淆。 现在,云服务商provider的定义是使用driver参数来引用提供连接云平台功能的Salt云模块,而云主机profile配置文件则继续使用provider参数来引用您定义的provider配置。

Cloud Profiles

/etc/salt/cloud.profiles 中设置profile文件的初始化配置:

azure-ubuntu:
  provider: my-azure-config
  image: 'b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-12_04_3-LTS-amd64-server-20131003-en-us-30GB'
  size: Small
  location: 'East US'
  ssh_username: azureuser
  ssh_password: verybadpass
  slot: production
  media_link: 'http://portalvhdabcdefghijklmn.blob.core.windows.net/vhds'
  virtual_network_name: azure-virtual-network
  subnet_name: azure-subnet

这些选项将在下面更详细地描述。 配置完成后,可以使用salt命令和profile文件创建云主机:

salt-cloud -p azure-ubuntu newinstance

这将在Azure中创建一个名为newinstance的salt minion实例。 如果命令是在salt master主机上执行的,则其Salt key密钥将自动获得master服务的签名。

创建实例并安装Salt-minion之后,即可使用Salt验证到该实例的连接性:

salt newinstance test.version

Profile Options

当前,以下配置选项对Azure是可用的。

provider

在/etc/salt/cloud.providers.d/azure.conf文件中指定云平台服务商provider。

image

用于创建VM的镜像的名称。 可以使用以下命令查看可用镜像:

salt-cloud --list-images my-azure-config

size

用于创建VM的配置规格大小的名称。 可以使用以下命令查看可用的sizes:

salt-cloud --list-sizes my-azure-config

location

用于创建VM的位置的名称。可以使用以下命令查看可用位置:

salt-cloud --list-locations my-azure-config

affinity_group

要在其中创建VM的 affinity group 组的名称。可以指定location或affinity_group,但不能同时指定。 请参阅下面的Affinity Groups。

ssh_username

用于登录新创建的VM来安装Salt的用户账号。

sh_password

用于登录新创建的VM以安装Salt的账号密码。

slot

托管服务器部署到的环境。 有效值是staging或production。 设置为production时,新VM的结果URL将为<vm_name>.cloudapp.net。 设置为staging时,结果URL将包含一个生成的哈希值。

media_link

这是将存储此VM使用的磁盘的容器的URL。 当前,该容器必须已经存在。 如果先前已在关联的帐户中创建了VM,则容器应该已经存在。 在Web界面中,进入“存储”区域,然后单击可用的存储选择之一。 单击“容器”链接,然后从将使用的容器中复制URL。 它通常看起来像:

http://portalvhdabcdefghijklmn.blob.core.windows.net/vhds

service_name

在其中创建VM的服务的名称。 如果未指定,则将使用与VM相同的名称创建服务。

virtual_network_name

可选的。 虚拟机要加入的虚拟网络的名称。 如果未指定,则不会加入任何虚拟网络。

subnet_name

可选的。 虚拟机要加入的虚拟网络中的子网名称。 这要求先指定了一个virtual_network_name

Show Instance

此操作是--full-query的一个thin wrapper,仅显示单个实例的详细信息。 在具有多台计算机的环境中,这将使用户不必为了检查单个实例而对所有实例数据进行排序。

salt-cloud -a show_instance myinstance

Destroying VMs

可以在全局云配置文件(通常是/etc/salt/cloud)中指定某些选项,这些选项会在销毁VM时影响Salt Cloud的行为。

cleanup_disks

New in version 2015.8.0.

默认值为False。 设置为True时,Salt Cloud将等待VM被销毁,然后尝试销毁与VM关联的磁盘。

cleanup_vhds

New in version 2015.8.0.

默认值为False。 需要将cleanup_disks设置为True,同时该参数也设置为True时,Salt Cloud将要求Azure删除与已销毁的磁盘关联的VHD。

cleanup_services

New in version 2015.8.0.

默认值为False。 需要将cleanup_disks设置为True,同时该参数也设置为True时,Salt Cloud将等待磁盘被销毁,然后尝试删除与VM关联的服务。 由于磁盘属于服务,因此必须先销毁磁盘才能使用该服务。

Managing Hosted Services - 管理托管服务

New in version 2015.8.0.

一个帐户可以具有一个或多个托管服务(hosted services)。 需要具有托管服务才能创建VM。 但是,如上所述,如果在创建VM时未指定托管服务,则将自动使用该名称创建一个托管服务。 对于管理hosted services以下功能是可用的。

create_service

创建一个托管服务。 以下选项可用。

name

Required.

要创建的托管服务的名称。

label

Required.

应用于托管服务的标签。

description

Optional.

托管服务的详细说明。

location

Required(在没有设置affinity_group时)。

创建托管服务的位置。 必须设置location或affinity_group参数,但不能同时设置两者。

affinity_group

Required(在没有设置location时)。

要在其中创建托管服务的affinity_group组。 必须设置location或affinity_group参数,但不能同时设置两者。

extended_properties

Optional.

包含托管服务属性的name/value键值对的字典。 您最多可以有50个扩展属性name/value键值对。 Name元素的最大长度为64个字符,名称中仅字母数字字符和下划线有效,并且名称必须以字母开头。 该值的最大长度为255个字符。

CLI Example

以下示例说明了如何创建托管服务。

salt-cloud -f create_service my-azure name=my-service label=my-service location='West US'

show_service

返回有关特定托管服务的详细信息。 也可以使用get_service调用。

salt-cloud -f show_storage my-azure name=my-service

list_services

列出与服务订阅相关联的所有托管服务。

salt-cloud -f list_services my-azure-config

delete_service

删除一个特定的托管服务。

salt-cloud -f delete_service my-azure name=my-service

Managing Storage Accounts - 管理存储账户

New in version 2015.8.0.

Salt Cloud可以管理与该帐户关联的存储帐户。 以下管理功能可以使用。 标记为“deprecated ”的已弃用部分已按照SDK文档进行了标记,但为了确保SDK的完整性,仍将其包括在内。

###create_storage 创建一个存储帐户。 支持以下选项。

name

Required.

要创建的存储帐户的名称。

label

Required.

应用于存储帐户的标签。

description

Optional.

存储帐户的详细说明。

location

Required(如果没有同时设置affinity_group参数)。

创建存储帐户的位置。 必须设置location或affinity_group,但不能同时设置两者。

affinity_group

Required(如果没有同时设置location参数)。

要在其中创建存储帐户的affinity_group分组。 必须设置location或affinity_group,但不能同时设置两者。

extended_properties

Optional.

包含存储帐户属性的name/value键值对的字典。 您最多可以有50个扩展属性name/value键值对。 Name元素的最大长度为64个字符,名称中仅字母数字字符和下划线有效,并且名称必须以字母开头。 该值的最大长度为255个字符。

geo_replication_enabled

Deprecated.

已替换为account_type参数。

account_type

指定该帐户是否支持本地冗余存储、geo-redundant冗余存储、区域位置冗余存储或只读的geo-redundant冗余存储。 可用的值为:

  • Standard_LRS
  • Standard_ZRS
  • Standard_GRS
  • Standard_RAGRS

CLI Example

以下示例说明创建存储帐户的方法。

salt-cloud -f create_storage my-azure name=my-storage label=my-storage location='West US'

list_storage

列出与服务订阅关联的所有存储帐户。

salt-cloud -f list_storage my-azure-config

show_storage

返回有关特定存储帐户的详细信息。 也可以用get_storage调用。

salt-cloud -f show_storage my-azure name=my-storage

update_storage

更新有关存储帐户的详细信息。 可以使用create_storage中可用的任何参数选项,但不能更改名称。

salt-cloud -f update_storage my-azure name=my-storage label=my-storage

delete_storage

删除一个特定的存储帐户

salt-cloud -f delete_storage my-azure name=my-storage

show_storage_keys

返回指定存储帐户的primary 和 secondary 访问密钥。

salt-cloud -f show_storage_keys my-azure name=my-storage

regenerate_storage_keys

重新生成存储帐户密钥。 需要指定一个key_type(“ primary”或“ secondary”)。

salt-cloud -f regenerate_storage_keys my-azure name=my-storage key_type=primary

Managing Disks - 管理磁盘

New in version 2015.8.0.

创建VM后,还将为其创建磁盘。 以下功能函数可用于管理磁盘。 标记为“deprecated ”的已弃用函数已按照SDK文档进行了标记,但为了确保SDK的完整性,仍将其包括在内。

show_disk

返回有关特定磁盘的详细信息。 也可以用get_disk调用。

salt-cloud -f show_disk my-azure name=my-disk

list_disks

列出与该帐户关联的所有磁盘。

salt-cloud -f list_disks my-azure

update_disk

更新磁盘的详细信息。 有以下选项可用。

name

Required.

要更新的磁盘的名称。

has_operating_system

Deprecated.

label

Required.

磁盘的标签。

media_link

Deprecated.

磁盘在帐户中的位置,包括其所在的存储容器。此位置无需更改。

new_name

Deprecated.

如果重命名磁盘,则使用这一新名称。

os

Deprecated.

CLI Example

以下示例说明了如何更新磁盘。

salt-cloud -f update_disk my-azure name=my-disk label=my-disk

delete_disk

删除一个特定的磁盘。

salt-cloud -f delete_disk my-azure name=my-disk

Managing Service Certificates - 管理服务的证书

New in version 2015.8.0.

这些证书存储在云服务这一级别,已部署的服务使用这些证书。 有关服务证书的更多信息,请参见以下链接:

有以下管理函数可用。

list_service_certificates

列出与帐户关联的服务证书。

salt-cloud -f list_service_certificates my-azure

show_service_certificate

显示与该帐户关联的特定服务证书的数据。 可以从list_service_certificates获得name、thumbprint和thumbalgorithm。 也可以使用get_service_certificate调用。

salt-cloud -f show_service_certificate my-azure name=my_service_certificate \
    thumbalgorithm=sha1 thumbprint=0123456789ABCDEF

add_service_certificate

将服务证书添加到该帐户。 这要求证书已经存在,然后将其添加到帐户中。 有关创建证书本身的更多信息,请参见:

有以下配置项可以使用。

name

Required.

证书所属的托管服务的名称。

data

Required.

pfx文件的base-64编码形式。

certificate_format

Required.

服务证书格式。 唯一支持的值是pfx。

password

证书的密码。

salt-cloud -f add_service_certificate my-azure name=my-cert \
    data='...CERT_DATA...' certificate_format=pfx password=verybadpass

delete_service_certificate

从帐户中删除服务证书。 可以从list_service_certificates获得name、thumbprint和thumbalgorithm。

salt-cloud -f delete_service_certificate my-azure \
    name=my_service_certificate \
    thumbalgorithm=sha1 thumbprint=0123456789ABCDEF

Managing Management Certificates - 管理服务管理使用的证书

New in version 2015.8.0.

Azure管理证书是X.509 v3证书,用于对代理(例如,用于Windows Azure的Visual Studio Tools或使用Service Management API的客户端应用程序)进行身份验证,该代理代表订阅所有者来管理订阅资源。 Azure管理证书上载到Azure并存储在订阅级别。 管理证书存储区每个服务订阅最多可容纳100个证书。 这些证书用于验证Windows Azure部署。

有关管理证书的更多信息,请参见以下链接。

有以下管理函数可以使用。

list_management_certificates

列出与该帐户关联的管理证书。

salt-cloud -f list_management_certificates my-azure

show_management_certificate

显示与该帐户关联的特定管理证书的数据。 可以从list_management_certificates获取name、thumbprint和thumbalgorithm。 也可以使用get_management_certificate调用。

salt-cloud -f show_management_certificate my-azure name=my_management_certificate \
    thumbalgorithm=sha1 thumbprint=0123456789ABCDEF

add_management_certificate

管理证书的密钥长度必须至少为2048位,并且应驻留在个人证书存储中。 在客户端上安装证书后,它应包含证书的私钥。 若要将证书上载到Microsoft Azure管理门户,必须将其导出为不包含私钥的.cer格式文件。 有关创建管理证书的更多信息,请参见以下链接:

以下选项可用。

public_key

管理证书公用密钥的base64表示形式。

thumbprint

唯一标识管理证书的指纹。

data

证书的原始数据采用base-64编码的.cer格式。

salt-cloud -f add_management_certificate my-azure public_key='...PUBKEY...' \
    thumbprint=0123456789ABCDEF data='...CERT_DATA...'

delete_management_certificate

从帐户中删除管理证书。 可以从list_management_certificates获取thumbprint 。

salt-cloud -f delete_management_certificate my-azure thumbprint=0123456789ABCDEF

Virtual Network Management - 管理虚拟网络

New in version 2015.8.0.

以下是用于管理虚拟网络的功能函数。

list_virtual_networks

列出与部署关联的虚拟网络。

salt-cloud -f list_virtual_networks my-azure service=myservice deployment=mydeployment

Managing Input Endpoints - 管理输入端点

New in version 2015.8.0.

输入端点用于管理角色的端口访问。 由于端点无法由Azure Python SDK管理,因此Salt Cloud直接使用该API。 对于2.7.9之前的Python版本,需要安装requests-python软件包才能使其工作。 此外,需要在master服务器的配置文件中设置以下内容:

backend: requests

以下功能函数可用。

list_input_endpoints

列出与部署关联的输入端点

salt-cloud -f list_input_endpoints my-azure service=myservice deployment=mydeployment

show_input_endpoint

显示与部署关联的输入端点

salt-cloud -f show_input_endpoint my-azure service=myservice \
    deployment=mydeployment name=SSH

add_input_endpoint

将输入端点添加到部署中。 请注意,更改可能会有所延迟。 有以下选项可用。

service

Required.

VM所属的托管服务的名称。

deployment

Required.

VM所属部署的名称。 如果VM是使用Salt Cloud创建的,则部署名称可能与VM名称匹配。

role

Required.

VM所属角色的名称。 如果使用Salt Cloud创建VM,则角色名称可能与VM名称匹配。

name

Required.

输入端点的名称。 这通常与端点设置为的端口匹配。 例如,端口22将被称为SSH。

port

Required.

用于端点的公共(面向Internet)端口。

local_port

Optional.

VM本身上与端口匹配的私有端口。 这通常与端口相同。 如果未指定此值,将从端口复制它。

protocol

Required.

tcp或udp。

enable_direct_server_return

Optional.

如果帐户中存在内部负载平衡器,则可以将其与直接服务器一起使用。 默认值为False。 请参阅以下文章对此选项的说明。

timeout_for_tcp_idle_connection

Optional.

默认值为4。有关此选项的说明,请参阅以下文章。

CLI Example

以下示例说明了添加输入端点的方法。

salt-cloud -f add_input_endpoint my-azure service=myservice \
    deployment=mydeployment role=myrole name=HTTP local_port=80 \
    port=80 protocol=tcp enable_direct_server_return=False \
    timeout_for_tcp_idle_connection=4

update_input_endpoint

更新特定输入端点的详细信息。 支持add_input_endpoint中的所有选项。

salt-cloud -f update_input_endpoint my-azure service=myservice \
    deployment=mydeployment role=myrole name=HTTP local_port=80 \
    port=80 protocol=tcp enable_direct_server_return=False \
    timeout_for_tcp_idle_connection=4

delete_input_endpoint

从部署中删除输入端点。 请注意,更改可能会有所延迟。 需要使用到以下配置项。

CLI Example

以下示例说明了删除输入端点的方法。

service

VM所属的托管服务的名称。

deployment

VM所属部署的名称。 如果VM是使用Salt Cloud创建的,则部署名称可能与VM名称匹配。

role

VM所属角色的名称。 如果使用Salt Cloud创建VM,则角色名称可能与VM名称匹配。

name

输入端点的名称。 这通常与端点设置为的端口匹配。 例如,端口22将被称为SSH。

salt-cloud -f delete_input_endpoint my-azure service=myservice \
    deployment=mydeployment role=myrole name=HTTP

Managing Affinity Groups - 管理亲和力分组

New in version 2015.8.0.

亲和力分组允许您将Azure服务分组以优化性能。 亲和力分组中的所有服务和VM将位于同一区域。 有关亲和力分组的更多信息,请参见以下链接:

以下功能函数可用。

list_affinity_groups

列出与帐户关联的输入端点。

salt-cloud -f list_affinity_groups my-azure

show_affinity_group

显示与该帐户相关联的亲和性分组。

salt-cloud -f show_affinity_group my-azure service=myservice \
    deployment=mydeployment name=SSH

create_affinity_group

创建一个新的新和性分组。 支持以下选项。

name

Required.

亲和性分组的名称。

location

Required.

亲和性分组所属的位置。

label

Required.

描述亲和性分组特性的标签。

description

Optional.

对亲和性分组的描述。

salt-cloud -f create_affinity_group my-azure name=my_affinity_group \
   label=my-affinity-group location='West US'

update_affinity_group

更新亲和性分组的属性值。

salt-cloud -f update_affinity_group my-azure name=my_group label=my_group

delete_affinity_group

删除与该帐户关联的特定亲和性分组。

salt-cloud -f delete_affinity_group my-azure name=my_affinity_group

Managing Blob Storage - 管理Blob存储

New in version 2015.8.0.

可以使用Salt Cloud管理Azure存储容器及其内容。 这不像在Windows中使用其他可用客户端中的一个那样优雅,但是它使Linux和Unix用户受益,因为这些平台上可用的选项较少。

Blob Storage Configuration

Blob存储的配置与标准Azure配置不同。 必须通过Azure provider配置(除了其他Azure配置之外)或通过命令行指定storage_accountstorage_key

storage_account: mystorage
storage_key: ffhj334fDSGFEGDFGFDewr34fwfsFSDFwe==

storage_account

这是可通过list_storage函数使用的存储帐户之一。

storage_key

通过运行show_storage_keys函数,可以获取primary 存储密钥和secondary 存储密钥。 可以使用任何一个密钥。

Blob Functions

通过Salt Cloud提供以下功能函数来管理Blob存储。

make_blob_url

创建一个访问blob存储的URL地址。

salt-cloud -f make_blob_url my-azure container=mycontainer blob=myblob

container

容器的名称。

blob

blob存储的名称。

account

存储帐户名称。 如果未指定,则从provider配置中派生可以使用的主机配置基线。

protocol

使用的协议:“ http”或“ https”。 如果未指定,则从provider配置中派生可以使用的主机配置基线。

host_base

Live host base URL.

如果未指定,则从provider配置中派生可以使用的主机配置基线。

####list_storage_containers

列出与存储帐户关联的容器。

salt-cloud -f list_storage_containers my-azure

create_storage_container

创建一个存储容器。

salt-cloud -f create_storage_container my-azure name=mycontainer

name

要创建的容器的名称。

meta_name_values

Optional.

具有name_value键值对的字典,用于与容器关联为元数据。

Example:{'Category':'test'}

blob_public_access

Optional.

可能的取值有: container, blob

fail_on_exist

指定在容器退出时是否引发异常。

show_storage_container

显示与存储帐户关联的容器。

salt-cloud -f show_storage_container my-azure name=myservice

name

要查看的容器的名称。

show_storage_container_metadata

显示一个存储容器的元数据信息。

salt-cloud -f show_storage_container_metadata my-azure name=myservice

name

将展示的容器的名称。

lease_id

如果指定,则show_storage_container_metadata仅在容器的租用处于活动状态且与该ID匹配时返回成功。

set_storage_container_metadata

设置一个存储容器的元数据信息。

salt-cloud -f set_storage_container my-azure name=mycontainer \
    x_ms_meta_name_values='{"my_name": "my_value"}'

name

一个当前存活状态下的容器的名称。

meta_name_values

一个包含了name/value键值对的元数据字典,例如: {'category':'test'}

lease_id

如果指定,则set_storage_container_metadata仅在容器的租约处于活动状态且与该ID匹配时成功。

show_storage_container_acl

显示一个存储容器的 acl 规则。

salt-cloud -f show_storage_container_acl my-azure name=myservice

name

一个当前存活状态下的容器的名称。

lease_id

如果指定,则show_storage_container_acl仅在容器的租约处于活动状态且与该ID匹配时返回成功。

set_storage_container_acl

设置一个存储容器的 acl 规则。

salt-cloud -f set_storage_container my-azure name=mycontainer

name

一个当前存活状态下的容器的名称。

signed_identifiers

Signed Identifers instance.

blob_public_access

Optional.

可能的取值有: container, blob

lease_id

如果指定,则set_storage_container_acl仅在容器的租约处于活动状态且匹配此ID时返回成功。

delete_storage_container

删除与存储帐户关联的容器。

salt-cloud -f delete_storage_container my-azure name=mycontainer

name

要删除的容器的名称。

fail_on_exist

指定在容器退出时是否引发异常。

lease_id

如果指定,则delete_storage_container仅在容器的租约处于活动状态且匹配此ID时返回成功。

lease_storage_container

租赁与存储帐户关联的容器。

salt-cloud -f lease_storage_container my-azure name=mycontainer

name

要创建的容器的名称。

lease_action

Required.

可能的取舍范围是: acquire|renew|release|break|change

lease_id

如果容器具有有效的租约,则为必需。

lease_duration

指定租期,以秒为单位,或者设置为 -1 表示为永不过期。 一个非无限的租约可以在15到60秒之间。 不能使用续订或更改来变更租约期限。 为了向后兼容,默认值为60,并且该值仅支持 acquire 操作。

lease_break_period

Optional.

对于中断操作,这是租约在中断之前应继续的建议持续时间,介于0到60秒之间。 仅在短于租约剩余时间的情况下使用此休息时间。 如果更长,则会使用租约上剩余的时间。 休息时间到期之前将无法获得新的租约,但是该租约的持有时间可能会超过休息时间。 如果此header未通过中断操作出现,则固定期限的租约在剩余的租约期过后会中断,并且无限期的租约会立即中断。

proposed_lease_id

对于acquire是可选项,对于change是必选项。

建议的租约ID,采用GUID字符串格式。

list_blobs

列出与容器关联的Blob。

salt-cloud -f list_blobs my-azure container=mycontainer

container

存储容器的名称。

prefix

Optional.

过滤结果以仅返回以指定名称前缀开头的Blob。

marker

Optional.

一个字符串值,用于标识列表的下一部分要通过下一个列表操作返回的部分。 如果返回的列表不完整,则该操作将在响应主体内返回一个标记值。 然后可以在随后的调用中使用标记值来请求下一组列表项。 该标记值对于客户端是不透明的。

maxresults

Optional.

指定要返回的Blob的最大数量,包括所有BlobPrefix元素。 如果请求中未指定maxresults或指定的值大于5,000,则服务器将最多返回5,000个项目。 将maxresults设置为小于或等于零的值将导致错误响应代码400(错误请求)。

include

Optional.

指定要包含在响应中的一个或多个数据集。 要在URI上指定这些选项中的多个,必须用逗号分隔每个选项。

有效值为:

snapshots:
  指定快照应包含在数据中。 快照从最早到最新列出响应。
metadata:
  指定在响应中返回Blob元数据。
uncommittedblobs:
  指定将那些已为其上传数据块但尚未最后使用Put Block List(REST API)提交的blobs,包含在响应中。
copy:
  版本2012-02-12及更高版本。 指定将与任何当前或先前的“Copy Blob”操作相关的元数据应包括在响应中。

delimiter

Optional.

当请求包含此参数时,该操作将在响应正文中返回一个BlobPrefix元素,该元素充当其名称以相同子字符串开头直至出现分隔符的所有Blob的占位符。 分隔符可以是单个字符或字符串。

show_blob_service_properties

显示一个blob服务的属性信息。

salt-cloud -f show_blob_service_properties my-azure

set_blob_service_properties

设置存储帐户的Blob服务(包括Windows Azure Storage Analytics)的属性。 您也可以使用此操作为所有未指定版本的传入请求设置默认请求版本。

salt-cloud -f set_blob_service_properties my-azure

properties

一个存储服务属性的对象。

timeout

Optional.

该超时参数使用秒为单位。

show_blob_properties

返回Blob的所有的用户定义的元数据,标准HTTP属性和系统属性。

salt-cloud -f show_blob_properties my-azure container=mycontainer blob=myblob

container

一个当前存活状态下的容器的名称。

blob

一个已存在的blob的名称。

lease_id

如果Blob具有有效租约,则为必需。

set_blob_properties

设置一个blob的属性。

salt-cloud -f set_blob_properties my-azure

container

一个当前存活状态下的容器的名称。

blob

一个已存在的blob的名称。

blob_cache_control

Optional.

修改Blob的缓存控制字符串。

blob_content_type

Optional.

设置blob的内容类型。

blob_content_md5

Optional.

设置blob的 MD5 哈希值。

blob_content_encoding

Optional.

设置blob的内容编码。

blob_content_language

Optional.

设置blob的语种。

lease_id

如果使用的blob有一个有效的租约,则该参数为必需。

blob_content_disposition

Optional.

设置Blob的Content-Disposition header头。 Content-Disposition响应头字段传达有关如何处理响应有效负载的其他信息,也可以用于附加其他元数据。 例如,如果设置为附件,则表明用户代理不应显示响应,而应显示“另存为”对话框,其文件名不是指定的Blob名称。

put_blob

上传一个blob。

salt-cloud -f put_blob my-azure container=base name=top.sls blob_path=/srv/salt/top.sls
salt-cloud -f put_blob my-azure container=base name=content.txt blob_content='Some content'

container

一个当前存活状态下的容器的名称。

name

一个当前存活状态下的容器的名称。

blob_path

在本地计算机上以blob形式上传的文件的路径。 需要同时指定本配置项或blob_content之一。

blob_content

作为Blob上传的实际内容。 必须指定this或blob_path。

cache_control

Optional.

Blob服务存储此值,但不使用或修改它。

content_language

Optional.

指定此资源使用的语言。

content_md5

Optional.

Blob内容的MD5哈希。 此哈希用于在传输过程中验证Blob内容的完整性。 指定此header头后,存储服务将检查与发送的哈希一起到达的哈希值。 如果两个哈希值不匹配,则操作将失败,并显示错误代码400(错误请求)。

blob_content_type

Optional.

设置blob的内容类型。

blob_content_encoding

Optional.

设置blob的内容编码。

blob_content_language

Optional.

设置blob使用的语言。

blob_content_md5

Optional. 设置blob的MD5哈希值。

blob_cache_control

Optional.

设置Blob的缓存控件。

meta_name_values

一个包含name/value键值对的metadata元数据字典。

lease_id

如果该blob具有一个有效的租约,则该配置项为必需。

get_blob

下载一个 blob。

salt-cloud -f get_blob my-azure container=base name=top.sls local_path=/srv/salt/top.sls
salt-cloud -f get_blob my-azure container=base name=content.txt return_content=True

container

一个当前存活状态下的容器的名称。

name

一个已存在的blob的名称。

local_path

将Blob下载到的本地计算机上的路径。 必须指定本配置项或return_content之一。

return_content

是否直接从Blob返回内容。 如果指定,则必须为True或False。 必须指定此配置项或local_path。

snapshot

Optional.

snapshot参数是一个不透明的DateTime值( an opaque DateTime value),当存在时,用于指定要检索的Blob快照。

lease_id

如果该blob具有一个有效的租约,则该配置项为必需。

progress_callback

使用签名函数(current, total)进行进度的回调,其中current是到目前为止已传输的字节数,total是blob的大小。

max_connections

Blob大小超过64MB时要使用的最大并行连接数。 设置为1将以顺序方式下载Blob块。 设置为2或更大时可并行下载blob块。 这样会占用更多系统资源,但下载速度会更快。

max_retries

如果发生错误,重试下载Blob块的次数。

retry_wait

重试之间的睡眠时间(以秒为单位)。