Azure VMSS ---- PowerShell创建自定义镜像的VMSS集群
前面一篇文章介绍了如何用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集群的更多相关文章
- Azure VMSS ---- PowerShell创建标准镜像的VMSS集群
VMSS的创建可以采用Portal.Powershell.Azure CLI或者Template. 但目前Portal创建有很多限制,本文将介绍如何用PowerShell来创建VMSS的集群. 具体的 ...
- docker镜像创建redis5.0.3容器集群
拉取redis5.0.3镜像 # docker pull daocloud.io/library/redis:5.0.3 [root@localhost ~]# docker pull daoclou ...
- 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 ...
- 使用ARM和VMSS创建自动扩展的web集群
在很多的商业场景中,用户的访问,峰值时间都是很难预测的,尤其是做一些市场推广活动和促销的时候,到底部署什么规模的web集群合适,这一直是个问题,部署过量会造成高成本和资源不必要的浪费,部署过少,如果到 ...
- 云计算之路-试用Azure:制作虚拟机自定义镜像
虚拟机自定义镜像(Image)是一个很有用的功能,可以在一台虚拟机上配置好基本的系统环境,然后做个镜像,以后创建虚拟机直接从这个镜像创建,会省掉很多重复的配置工作. 阿里云与UCloud都有这个功能, ...
- 创建一个自定义名称的Ceph集群
前言 这里有个条件,系统环境是Centos 7 ,Ceph 的版本为Jewel版本,因为这个组合下是由systemctl来进行服务控制的,所以需要做稍微的改动即可实现 准备工作 部署mon的时候需要修 ...
- Docker镜像配置redis集群
redis版本:3.2.3 架构: 3节点redis集群,并为每个节点设置一个备用节点,共6个节点 1.安装redis镜像 docker load < docker.redis.tar.gz 2 ...
- kubernetes之二 使用minikube创建单节点k8s本地集群
使用Minikube来运行kubernetes集群是最简单.快捷的途径.Minikube是一个构建单节点集群的工具,对于测试Kubernetes和本地开发应用都非常有用.官方安装minikube教程请 ...
- 仅需60秒,使用k3s创建一个多节点K8S集群!
作者: Dawid Ziolkowski丨Container Solution云原生工程师 最近,我一直在Kubernetes上进行各种测试和部署.因此,我不得不一次又一次创建和销毁Kubernete ...
随机推荐
- eclipse修改项目默认编码为UTF-8
1.windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Workspace,右侧 Text file encodin ...
- python的常用的内置函数
使用内置函数的好处:简单,快速. 1.zip():以多个序列为参数,返回元祖列表. 长度:在多个序列长度不一时,以最短的为准. 常见用途:构建多参数列表,构建字典. 2.map():在python2旧 ...
- centos 下安装python3.6.2
具体详情: http://www.cnblogs.com/vurtne-lu/p/7068521.html
- iOS清除缓存功能开发
在APP开发中,大量的图片或消息占用系统内存,造成一堆垃圾信息,所以开发清除缓存功能就显得必不可少了. 代码段1:获取文件的大小 - (long long) fileSizeAtPath:(NSStr ...
- MATLAB常用指令记录
help + 'command name' % 查询指令用法 Ctrl + Break % 强制终止程序运行 Shift + Enter % command window下换行不运行指令 M'; % ...
- 如何用hexo+github搭建个人博客
搭建环境 1.安装 Node.js: https://nodejs.org/en/ windows下点击链接,下载安装即可;Linux下更加简单,在终端下输入sudo apt-get install ...
- python编程常见小技巧
#主要是记录常见的小问题以及解决办法 ##1.复制的代码,经常出现TAB和空格不一致的情况 将tab或者空格删除,然后重新打出空格或者tab就可以了: ##2.python读取文件,经常出现的编码en ...
- sg函数的应用
刚刚接触到sg函数突然感觉到原来可以这么好用,sg函数应该算是博弈论中比较经典的东西了.下面来说说sg函数: 从网上搜集资料终于能看懂了下面解释来自http://www.cnblogs.com/cj6 ...
- Java多线程的集合类
适用于多线程环境下的集合类: 1.阻塞队列:ArrayBlockingQueue(数组实现队列),LinkedBlockingQueue(链表实现队列) public class BlockingQu ...
- mysql与mongodb命令对比
连接:mysql: mysql -h localhost -u username -pmongodb:con = pymongo.Connection(‘localhost’,27017)显示数据库m ...