前面一篇文章介绍了如何用PowerShell创建标准镜像的VMSS集群。http://www.cnblogs.com/hengwei/p/7391178.html

本文将介绍,如何用PowerShell创建自定义镜像的VMSS集群。

1 创建VM,对其进行个性化配置,比如安装httpd,增加Date Disk等,并把此VM捕获成Image

2 以这个Image创建VMSS集群

一 创建并捕获Image

这个操作在前面的文章中也介绍过:

http://www.cnblogs.com/hengwei/p/7348453.html

采用的是Azure CLI工具实现的。

客户化的工作包括:

1 安装了httpd

2 配置了fstab自动挂载/dev/sdc1到/var/www/html

3 在/var/www/html中创建index.html文件

4 关闭防火墙和selinux

原理都相同,这里就不多介绍了。只是介绍一下PowerShell捕获Image的相关命令:

Set-AzureRmVM -ResourceGroupName hwvmssp -Name hwimage -Generalized -Verbose
$vm = $vm = get-azurermvm -ResourceGroupName hwvmssp -Name hwimage
$image = New-AzureRmImageConfig -Location chinanorth -SourceVirtualMachineId $vm.Id
New-AzureRmImage -ResourceGroupName hwvmssp -ImageName vmssimage -Image $image

或者直接在Portal上捕获:

二 创建自定义镜像的VMSS集群

在前文中,创建了相应的Vnet、SLB,我们还采用原有的网络资源。具体的创建方法,可以参考:

http://www.cnblogs.com/hengwei/p/7391178.html

具体脚本如下:

$loc = 'chinanorth';
$rgname = 'hwvmssp'; $vnet = Get-AzureRmVirtualNetwork -Name $rgname -ResourceGroupName $rgname;
$subnetName = 'vlan1'
$subnetId = $vnet.Subnets[0].Id; $pubip = Get-AzureRmPublicIpAddress -Name ('pubip' + $rgname) -ResourceGroupName $rgname;
$lbName = 'vmsslb' + $rgname
$actualLb = Get-AzureRmLoadBalancer -Name $lbName -ResourceGroupName $rgname $vmssName = $rgname; $adminUsername = 'hengwei';
$adminPassword = "xxxx";
$vmNamePrefix = 'centosvmss' $ipCfg = New-AzureRmVmssIPConfig -Name 'nic' `
  -LoadBalancerInboundNatPoolsId $actualLb.InboundNatPools[0].Id `
  -LoadBalancerBackendAddressPoolsId $actualLb.BackendAddressPools[0].Id `
  -SubnetId $subnetId; $numberofnodes = 2
$image = Get-AzureRmImage -ResourceGroupName hwvmssp -ImageName vmssimage
$vmss = New-AzureRmVmssConfig -Location $loc -SkuCapacity $numberofnodes `
  -SkuName 'Standard_D1' -UpgradePolicyMode 'automatic' `
  | Add-AzureRmVmssNetworkInterfaceConfiguration -Name $subnetName `
    -Primary $true -IPConfiguration $ipCfg `
  | Set-AzureRmVmssOSProfile -ComputerNamePrefix $vmNamePrefix `
    -AdminUsername $adminUsername -AdminPassword $adminPassword `
  | Set-AzureRmVmssStorageProfile -OsDiskCreateOption 'FromImage' `
    -OsDiskCaching 'None' -OsDiskOsType Linux ·
    -ManagedDisk StandardLRS -ImageReferenceId $image.Id New-AzureRmVmss -ResourceGroupName $rgname -Name $vmssName ·
  -VirtualMachineScaleSet $vmss

创建好后,登录Instance,可以看到之前Image中做的客户化工作还都在:

网页也可以打开:

总结:

通过自定义的Image创建VMSS,可以非常方便的实现定制化。

最新文章

  1. Python爬虫学习
  2. Mysql 分区处理NULL的得方式
  3. windows docker测试二 下载container
  4. 用Perl编写Apache模块续 - SVNAuth
  5. extjs Combobox动态加载数据问题,mode:local 还是remote
  6. Java中正则Matcher类的matches()、lookAt()和find()的区别<转>
  7. nodeschool.io 6
  8. 【函数】oracle translate() 详解+实例
  9. JAVA toString方法
  10. Cent OS安装TL-WN725N 2.0 USB驱动
  11. 应用web框架模块设计三国演义篇--转至微博
  12. qwt6在Windows下Qt5的编译,安装,初步使用
  13. 如何学习javascript?(转)
  14. AS3游戏中可视对象上限及位图相关的内存消耗实测
  15. mysql触发器的使用
  16. Android5.0水波纹效果ripple实现
  17. Java中的Json序列化,不容忽视的getter
  18. twitter ads_campaign management(图示)
  19. hdu 1540 线段树
  20. BZOJ1458:士兵占领(有上下界最小流)

热门文章

  1. S005SELinux(SEAndroid)的实际文件组成无标题文章
  2. etcd 安装部署
  3. 1.linux源码安装nginx
  4. mysql慢查询设置
  5. 字符串处理sdut 2411
  6. linux命令:mv命令
  7. LightOJ 1245 数学
  8. liunx常用命令-----查找命令
  9. 51nod 1276
  10. hdoj-2647-Reward(拓扑排序)