前面一篇文章介绍了如何用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,可以非常方便的实现定制化。

Azure VMSS ---- PowerShell创建自定义镜像的VMSS集群的更多相关文章

  1. Azure VMSS ---- PowerShell创建标准镜像的VMSS集群

    VMSS的创建可以采用Portal.Powershell.Azure CLI或者Template. 但目前Portal创建有很多限制,本文将介绍如何用PowerShell来创建VMSS的集群. 具体的 ...

  2. docker镜像创建redis5.0.3容器集群

    拉取redis5.0.3镜像 # docker pull daocloud.io/library/redis:5.0.3 [root@localhost ~]# docker pull daoclou ...

  3. suse 12 二进制部署 Kubernetets 1.19.7 - 第01章 - 创建CA证书和kubectl集群管理命令

    文章目录 1.kubernetes集群部署 1.0.创建CA证书和秘钥 1.0.0.安装cfssl工具 1.0.1.创建根证书 1.0.2.创建证书签名请求文件 1.0.3.生成CA证书和秘钥 1.0 ...

  4. 使用ARM和VMSS创建自动扩展的web集群

    在很多的商业场景中,用户的访问,峰值时间都是很难预测的,尤其是做一些市场推广活动和促销的时候,到底部署什么规模的web集群合适,这一直是个问题,部署过量会造成高成本和资源不必要的浪费,部署过少,如果到 ...

  5. 云计算之路-试用Azure:制作虚拟机自定义镜像

    虚拟机自定义镜像(Image)是一个很有用的功能,可以在一台虚拟机上配置好基本的系统环境,然后做个镜像,以后创建虚拟机直接从这个镜像创建,会省掉很多重复的配置工作. 阿里云与UCloud都有这个功能, ...

  6. 创建一个自定义名称的Ceph集群

    前言 这里有个条件,系统环境是Centos 7 ,Ceph 的版本为Jewel版本,因为这个组合下是由systemctl来进行服务控制的,所以需要做稍微的改动即可实现 准备工作 部署mon的时候需要修 ...

  7. Docker镜像配置redis集群

    redis版本:3.2.3 架构: 3节点redis集群,并为每个节点设置一个备用节点,共6个节点 1.安装redis镜像 docker load < docker.redis.tar.gz 2 ...

  8. kubernetes之二 使用minikube创建单节点k8s本地集群

    使用Minikube来运行kubernetes集群是最简单.快捷的途径.Minikube是一个构建单节点集群的工具,对于测试Kubernetes和本地开发应用都非常有用.官方安装minikube教程请 ...

  9. 仅需60秒,使用k3s创建一个多节点K8S集群!

    作者: Dawid Ziolkowski丨Container Solution云原生工程师 最近,我一直在Kubernetes上进行各种测试和部署.因此,我不得不一次又一次创建和销毁Kubernete ...

随机推荐

  1. eclipse修改项目默认编码为UTF-8

    1.windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Workspace,右侧 Text file encodin ...

  2. python的常用的内置函数

    使用内置函数的好处:简单,快速. 1.zip():以多个序列为参数,返回元祖列表. 长度:在多个序列长度不一时,以最短的为准. 常见用途:构建多参数列表,构建字典. 2.map():在python2旧 ...

  3. centos 下安装python3.6.2

    具体详情: http://www.cnblogs.com/vurtne-lu/p/7068521.html

  4. iOS清除缓存功能开发

    在APP开发中,大量的图片或消息占用系统内存,造成一堆垃圾信息,所以开发清除缓存功能就显得必不可少了. 代码段1:获取文件的大小 - (long long) fileSizeAtPath:(NSStr ...

  5. MATLAB常用指令记录

    help + 'command name' % 查询指令用法 Ctrl + Break % 强制终止程序运行 Shift + Enter % command window下换行不运行指令 M'; % ...

  6. 如何用hexo+github搭建个人博客

    搭建环境 1.安装 Node.js: https://nodejs.org/en/ windows下点击链接,下载安装即可;Linux下更加简单,在终端下输入sudo apt-get install ...

  7. python编程常见小技巧

    #主要是记录常见的小问题以及解决办法 ##1.复制的代码,经常出现TAB和空格不一致的情况 将tab或者空格删除,然后重新打出空格或者tab就可以了: ##2.python读取文件,经常出现的编码en ...

  8. sg函数的应用

    刚刚接触到sg函数突然感觉到原来可以这么好用,sg函数应该算是博弈论中比较经典的东西了.下面来说说sg函数: 从网上搜集资料终于能看懂了下面解释来自http://www.cnblogs.com/cj6 ...

  9. Java多线程的集合类

    适用于多线程环境下的集合类: 1.阻塞队列:ArrayBlockingQueue(数组实现队列),LinkedBlockingQueue(链表实现队列) public class BlockingQu ...

  10. mysql与mongodb命令对比

    连接:mysql: mysql -h localhost -u username -pmongodb:con = pymongo.Connection(‘localhost’,27017)显示数据库m ...