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 ...
随机推荐
- [POI2009]Wie
题目 BZOJ 虽然是解压题但也学到了简洁的码风 做法 \(dijkstra\)跑动规 My complete code #include<bits/stdc++.h> #include& ...
- CSS3 3D发光切换按钮
在线演示 本地下载
- 去duplicate的方法
1.什么是duplicate,为什么要去除. 什么是duplicate:这是在建库的过程后,对已连有接头的DNA片段进行扩增,然后去接flowcell.之所以在建库后扩增,这是由于接flowcell的 ...
- linux 安装tomcat7
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.81/bin/apache-tomcat-7.0.81.tar.gz 解压安装包 t ...
- springcloud一些概念知识
1.Eureka 1)Eureka服务治理体系支持跨平台 2)三个核心概念:服务注册中心.服务提供者以及服务消费者 3)服务续约:注册完服务之后,服务提供者会维护一个心跳来不停的告诉Eureka Se ...
- Java循环日期
//循环日期 Calendar ca = Calendar.getInstance(); Date curDate = startDate; while(curDate.compareTo(endDa ...
- Qt QThread 线程创建,线程同步,线程通信 实例
1. 继承QThread, 实现run()方法, 即可创建线程. 2. 实例1 代码 myThread.h #ifndef MYTHREAD_H #define MYTHREAD_H #includ ...
- ReverseInteger
public class ReverseInteger { public static int reverse(int x) { long ret = 0; //如果是个位数,直接返回. if(x/1 ...
- cell 配置
Cells Cell configuration options Configure the API (top-level) cell Configure the child cells Config ...
- java 读取src下的配置文件
很多时候,我们都将配置文件放在eclipse的src目录下,这个位置,相当于,当导出可执行jar包后,配置文件放在和jar同级的目录中,比如jar包放在/opt目录下,则配置文件放在/opt下,则ja ...