虚拟机
这里有一个简单的例子。我们使用默认设置创建虚拟机,运行shell命令,调整虚拟机大小,然后将其删除。
图书馆(AzureVM)
子<- AzureRMR公司::获取azure登录()$
获取订阅(“子id”)
#从订阅对象调用create_vm()将在其自己的资源组中创建vm
#默认为Ubuntu 18.04虚拟机,大小Standard_DS3_v2,通过SSH密钥登录
#调用sub$list_vm_sizes()获取您所在地区的可用大小
虚拟机<- 附属的$创建_vm(“myubuntuvm”,用户配置(“我的名字”,“~/.ssh/id_rsa.pub”),
位置=“澳大利亚”)
#VM使用的一些资源
虚拟机$获取vnet()
虚拟机$获取公共信息源()
虚拟机$获取磁盘(_D)(“操作系统”)
#远程运行shell脚本或命令(将是Windows VM上的PowerShell)
虚拟机$运行脚本(“echo hello world!>/tmp/hello.txt”)
# ... 然后停下来
虚拟机$停止()
# ... 并调整大小
虚拟机$调整大小(“Standard_DS4_v2”)
# ... 并将其删除(可以对其自己组中的VM异步执行此操作)
虚拟机$删除()
AzureVM附带了许多预定义的配置,用于部署常用的VM映像。例如,要创建可通过SSH、JupyterHub和RStudio Server访问的Ubuntu DSVM:
附属的$创建_vm(“mydsvm”,用户配置(“我的名字”,“~/.ssh/id_rsa.pub”),配置=“ubuntu_dsvm”,
位置=“澳大利亚东部”)
要创建可通过RDP访问的Windows Server 2019虚拟机,请执行以下操作:
附属的$创建_vm(“mywinvm”,用户配置(“我的名字”,密码=“使用-strong密码!”),配置=“windows_2019”,
位置=“澳大利亚东部”)
可用的预定义配置包括ubuntu_18.04
(默认设置),ubuntu_16.04
,ubuntu_dsvm
,2019年窗口
,2016年窗口
,windows _ dsvm
,rhel_7.6
,铑-8
,中心_7.5
,centos_7.6
,debian_8_背靠背
和debian_9_背靠背
。您可以将这些参数与其他几个参数结合起来,根据您的需要自定义VM部署:
大小
:VM大小。使用列出vm_sizes
方法以查看可用大小。
数据磁盘
:要连接的数据磁盘大小/配置。
知识产权
:公共IP地址。如果您不希望虚拟机在其子网之外可以访问,请将此设置为NULL。
vnet(虚拟网络)
:虚拟网络/子网。
天然气
:网络安全组。AzureVM将NSG与vnet/子网关联,而不是与VM的网络接口关联。
网络接口卡
:网络接口。
其他资源(_R)
:(可选)要部署的其他资源的列表。
#Windows Server 2016,附带500GB数据磁盘,不可公开访问
附属的$创建_vm(“mywinvm2”,用户配置(“我的名字”,密码=“使用-strong密码!”),
尺寸=“标准_DS4_v2”,配置=“windows_2016”,数据磁盘=500,知识产权=无效的,
位置=“澳大利亚”)
#Ubuntu DSVM,支持GPU
附属的$创建_vm(“mydsvm”,用户配置(“我的名字”,“~/.ssh/id_rsa.pub”),尺寸=“标准_NC12”,
配置=“ubuntu_dsvm_ss”,
位置=“澳大利亚”)
#Red Hat VM,提供HTTP/HTTPS服务
附属的$创建_vm(“myrhvm”,用户配置(“我的名字”,“~/.ssh/id_rsa.pub”),配置=“rhel_8”,
天然气=nsg配置(列表(nsg_rule_allow_http,nsg_roule_allow _https)),
位置=“澳大利亚”)
完全定制由vm_配置
函数,它还允许您从市场或磁盘指定要部署的映像。(预定义的配置实际上调用vm_配置
,每个特定配置都有相应的参数。)
##自定义VM配置:带数据磁盘的Windows 10 Pro 1903
##这假设您拥有有效的Win10桌面许可证
用户<- 用户配置(“我的名字”,密码=“使用-strong密码!”)
图像<- 图像配置(
出版商=“MicrosoftWindowsDesktop”,
报价=“窗口-10”,
库存单位=“19h1-pro”
)
数据磁盘<- 列表(
数据磁盘配置(250,类型=“高级_LRS”),
数据磁盘配置(1000,类型=“标准_LRS”)
)
天然气<- nsg配置(
列表(nsg_rule_allow_rdp)
)
附属的$创建_vm(“mywin10vm”,用户,
配置=vm_配置(
图像=图像,
密钥登录=错误的,
数据磁盘=数据磁盘,
天然气=nsg、,
属性=列表(许可证类型=“Windows_Client”(Windows客户端))
),
位置=“澳大利亚”
)
虚拟机缩放集
相当于创建_vm
对于scaleset,是创建_vm_scaleset
方法。默认情况下,新的缩放集将附带负载平衡器和自动缩放器,但其实例将无法从外部访问。
#默认为Ubuntu 18.04 scaleset,大小Standard_DS1_v2
附属的$创建_vm_scaleset(“缪宾图斯”,用户配置(“我的名字”,“~/.ssh/id_rsa.pub”),实例=5,
位置=“澳大利亚”)
每个预定义的VM配置都有相应的缩放集配置。要指定低级缩放集选项,请使用缩放集选项
功能。以下是一些规模集部署示例:
#Windows Server 2019
附属的$创建_vm_scaleset(“麦文斯”,用户配置(“我的名字”,密码=“使用-strong密码!”),实例=5,
配置=“windows_2019_ss”,
位置=“澳大利亚”)
#RHEL缩放集,用于HTTP/HTTPS
附属的$创建_vm_scaleset(“myrhels”,用户配置(“我的名字”,“~/.ssh/id_rsa.pub”),实例=5,
配置=“rhel_8_ss”,
天然气=nsg配置(列表(nsg_rule_allow_http,nsg_roule_allow _https)),
位置=“澳大利亚”)
#Ubuntu DSVM、支持GPU、公共实例、无负载平衡器或自动缩放器
附属的$创建_vm_scaleset(“mydsvmss”,用户配置(“我的名字”,“~/.ssh/id_rsa.pub”),实例=5,
尺寸=“标准_NC6”,配置=“ubuntu_dsvm_ss”,
选项=缩放集选项(公众=真的),
负载平衡器=无效的,自动标尺=无效的,
位置=“澳大利亚”)
#大型Debian尺度集(多个放置组),使用点虚拟机(低优先级)
#需要将实例大小设置为支持低功耗
附属的$创建_vm_scaleset(“聚酯薄膜”,用户配置(“我的名字”,“~/.ssh/id_rsa.pub”),实例=10,
尺寸=“标准_DS3_v2”,配置=“debian_9_backports_ss”,
选项=缩放集选项(优先级=“地点”,大比例尺集=真的),
位置=“澳大利亚”)
如果您有一个大的缩放集,那么使用缩放集实例可能会很乏味,因为R一次只能连接到一个实例。为了解决这个问题,AzureVM可以利用AzureRMR提供的进程池功能与scaleset并行连接,从而显著提高速度。池在第一次需要时自动创建,并在会话结束时删除。
#这将创建一个最多包含10个与scaleset对话的进程的池
我的慷慨$运行脚本(“echo hello world!>/tmp/hello.txt”)
您可以使用全局azure_vm_min池大小
和azure_vm_maxpoolsize
选项,其默认值分别为2和10。要关闭并行连接,请设置选项(azure_vm_maxpoolsize=0)
。请注意,池大小与比例尺集规模;它只控制可以同时与AzureVM通信的实例数量。
共享资源
通过提供AzureRMR,您还可以在部署中包含现有Azure资源az_源
对象作为参数创建_vm
或创建_vm_scaleset
呼叫。例如,在这里我们创建了一个VM和一个缩放集,它们共享一个虚拟网络/子网。
##同一资源组和虚拟网络中的VM和scaleset
#首先,创建resgroup
rg公司<- 附属的$创建资源组(“rgname”,“澳大利亚”)
#创建主控形状
rg公司$创建_vm(“mastervm”,用户配置(“我的名字”,“~/.ssh/id_rsa.pub”))
#获取vnet资源
vnet(虚拟网络)<- rg公司$获取资源(类型=“Microsoft.Network/virtualNetworks”,姓名=“mastervm-vnet”)
#创建缩放集
#由于NSG与vnet关联,我们也不需要创建新的NSG
rg公司$创建_vm_scaleset(“奴隶”,用户配置(“我的名字”,“~/.ssh/id_rsa.pub”),
实例=5,vnet(虚拟网络)=vnet、,天然气=无效的)