Azure上批量创建OS Disk大于30G的Linux VM
Azure上VM的OS盘的大小在创建时是固定的。Windows是127G,Linux是30G。如果需要批量创建的VM的OS Disk有更大的容量。可以考虑用下面的方法实现。
1 创建一台有Data-disk的CentOS VM,对其进行客户化,安装软件,挂载磁盘
2 扩大OS Disk的容量
3 在VM内resize OS Disk的容量
4 把这台VM捕获成Azure的Image
5 通过这个Image批量创建VM。创建VM的OS Disk容量是刚刚调整的容量
本文将采用Azure CLI 2.0实现这些操作:
一 创建VM
1 创建Resource Group
az group create --name hwmd --location chinanorth
2 创建VM
az vm create -g hwmd -n hwmd01 --image CentOS --authentication-type password --admin-username hengwei --admin-password xxxx --size Standard_D1 --storage-sku Standard_LRS
3 挂载Data-Disk
az vm disk attach --vm-name hwmd01 --resource-group hwmd --size-gb --sku Standard_LRS --caching None --new --disk hwmd01data01 --lun
4 SSH到这台VM,进行客户化工作
iptables -F
yum install -y httpd
fdisk /dev/sdc
mkfs.ext4 /dev/sdc1
vim /etc/sysconfig/selinux
setenforce
mount /dev/sdc1 /var/www/html/
df -h
cd /var/www/html
echo "Hello World" > index.html
systemctl enable httpd
systemctl start httpd
systemctl status httpd
vim /etc/fstab
mount -a
二 扩大OS Disk的容量
1 VM停机
az vm deallocate -g hwmd -n hwmd01
2 扩大OS Disk的Size
查看disk情况;
az disk list --o table
扩大Disk的size:
az disk update --resource-group hwmd --name osdisk_3yQQnL1V5E --size-gb
三 在VM中Resize OS Disk的容量
1 start vm
az vm start -g hwmd -n hwmd01
2 ssh到VM进行删除partition,重新创建partition(数据不会丢失)
fdisk /dev/sda
Command (m for help): u
Changing display/entry units to cylinders (DEPRECATED!).
Command (m for help): p
Disk /dev/sda: 64.4 GB, bytes, sectors
Device Boot Start End Blocks Id System
/dev/sda1 * Linux
/dev/sda2 Linux
Command (m for help): d
Partition number (,, default ):
Partition is deleted
Command (m for help): n
Partition type:
p primary ( primary, extended, free)
e extended
Select (default p): p
Partition number (-, default ):
First cylinder (-, default ):
Using default value
Last cylinder, +cylinders or +size{K,M,G} (-, default ):
Using default value
Partition of type Linux and of size 59.5 GiB is set
Command (m for help): p
Disk /dev/sda: 64.4 GB, bytes, sectors
Device Boot Start End Blocks Id System
/dev/sda1 * Linux
/dev/sda2 Linux
此时所有的容量都用满了。保存后重新启动
3 resize OS Disk
CentOS7以上机器的命令为:
xfs_growfs -d /dev/sda2
CentOS6的机器命令为:
resize2fs /dev/sda
可以看到OS Disk已经是60G的容量了。
[root@hwmd01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 60G .3G 59G % /
四 捕获Image
1 VM内通用化
waagent -deprovision
2 Azure平台对VM进行通用化
az vm deallocate -g hwmd -n hwmd01
az vm generalize -g hwmd -n hwmd01
3 捕获Image
az image create -g hwmd --name hwmdimage --source hwmd01
五 从这个Image创建VM
1 创建VM
az vm create -g hwmd -n hwmd03 --authentication-type password --admin-user hengwei --admin-password xxxx --image hwmdimage
2 SSH到VM查看Disk和访问的情况
[root@hwmd03 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 60G .3G 59G % /
/dev/sdc1 30G 45M 28G % /var/www/html
可以看到OS Disk已经是60G了,同时Image中挂载的30G的Disk也在。
由于Azure CLI会自动加载NSG到VM的网卡上,且Linux的NSG只允许22端口的访问,所以要开放80端口,或删除NSG,才能访问httpd的内容。

可以看到之前加载的内容在新建的机器中也运行起来了。
六 总结
通过把客户化的VM捕捉成Image,可以方便的进行复制。客户化的内容不光包括安装软件和用户数据,增添的数据盘、扩充的OS Disk,都可以被不准下来。
Azure上批量创建OS Disk大于30G的Linux VM的更多相关文章
- 【机器学习 Azure Machine Learning】使用VS Code登录到Linux VM上 (Remote-SSH), 及可直接通过VS Code编辑VM中的文件
问题描述 在平常的工作习惯中,如果使用VS Code做脚本的开发,是一个非常好用的工具,现在也可以通过VS Code的不同方式来连接到Linux VM中(ssh), 第一种是VS Code的Termi ...
- py3.5 telnet的实例(在远程机器上批量创建用户)
import sysimport telnetlibimport time HOST = ["172.18.217.12","172.18.217.13"]#往 ...
- 在 Azure 上使用 Docker运行 Mono
Docker 是最近相当热门的一个名词,它是一个基于 Linux Container 的轻量化的虚拟技术,而微软也相当积极与 Docker 合作,在 Azure 上支持这个火热的技术,并且提供简单的方 ...
- Azure上采用Json Template从已有的VHD创建VM
从已有的VHD创建VM是使用Azure中经常要操作的内容. 本文将介绍如何采用Json Template从已经有的VHD创建VM. 一.准备VHD 在我的Azure账户中选择一台VM,如下图: 查看其 ...
- 【Azure Developer】使用Microsoft Graph API 如何批量创建用户,用户属性中需要包含自定义字段(如:Store_code,Store_name等)
Microsoft Graph 是 Microsoft 365 中通往数据和智能的网关. 它提供统一的可编程模型,可用于访问 Microsoft 365.Windows 10 和企业移动性 + 安全性 ...
- (视频) 《快速创建网站》2.1 在Azure上创建网站及网站运行机制
现在让我们开始一天的建站之旅. 本文是<快速创建网站>系列的第2篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http:// ...
- 如何在Azure上创建和部署云服务
Azure 管理门户提供两种方法可用来创建和部署一个云服务:快速创建和自定义创建. 本主题说明如何使用快速创建方法来创建新的云服务,然后使用上传来上载和部署一套在 Azure 的云服务.当您使用此方法 ...
- (视频)《快速创建网站》2.1 在Azure上创建网站及网站运行机制
现在让我们开始一天的建站之旅. 本文是<快速创建网站>系列的第2篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 1. 网站管理平台WordPress和 ...
- How to expand Azure VM OS Disk
There are three main disk roles in Azure: the data disk, the OS disk, and the temporary disk. 1. OS ...
随机推荐
- 六、golang中的结构体和方法、接口
结构体: 1.用来自定义复杂数据结构 2.struct里面可以包含多个字段(属性) 3.struct类型可以定义方法,注意和函数的区分 4.strucr类型是值类型 5.struct类型可以嵌套 6. ...
- HashSet,TreeSet和LinkedHashSet的区别
1. Set接口 Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false. Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就是说,只要两个 ...
- 理解Android Build系统【转】
本文转载自:http://www.ibm.com/developerworks/cn/opensource/os-cn-android-build/ Android Build 系统是用来编译 And ...
- 1.linux源码安装nginx
从官网下载nginx.tar.gz源码包 拷贝至Linux系统下进行解压 tar -zxvf nginx.tar.gz 进入解压后的目录,需要./configure,此步骤会报多个错,比如没有安装gc ...
- read_excel
read_excel默认把第一行作为各个列名, 用headers=None,读取表时,可以让第一行不为列名. 而不是names,col之类的参数
- enter回车---焦点切换
$(function(){ $('.enter').bind('keydown',function(e){ var inputs = $('.enter_cash'); var key = e.whi ...
- CentOS7 常用命名整理
前言: 总是为了一点命令去查搜索引擎,今天简单整理了一下常用的一些命名: 一.网络配置相关 0.修改 IP&DNS 信息 # vi /etc/sysconfig/network-scripts ...
- java JDBC与MySQL 关于日间与日期
//MySQL Date类型 -> java.sql.Date java.sql.Date d = new java.sql.Date(Calendar.getInstance().getTim ...
- gym强化学习入门demo——随机选取动作 其实有了这些动作和反馈值以后就可以用来训练DNN网络了
# -*- coding: utf-8 -*- import gym import time env = gym.make('CartPole-v0') observation = env.reset ...
- 深入javascript之原型和原型链
原型和原型链是js中的难点也是重点,明白了原型和原型链会让我们在后面不管是学习还是工作都会更加高效,并且原型和原型链会是面试中必不可少的话题.看完此篇文章一定会让你对原型,原型链有深刻全面的了解. 一 ...