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

  1. az group create --name hwmd --location chinanorth

2 创建VM

  1. 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

  1. az vm disk attach --vm-name hwmd01 --resource-group hwmd --size-gb --sku Standard_LRS --caching None --new --disk hwmd01data01 --lun

4 SSH到这台VM,进行客户化工作

  1. iptables -F
  2. yum install -y httpd
  3. fdisk /dev/sdc
  4. mkfs.ext4 /dev/sdc1
  5. vim /etc/sysconfig/selinux
  6. setenforce
  7. mount /dev/sdc1 /var/www/html/
  8. df -h
  9. cd /var/www/html
  10. echo "Hello World" > index.html
  11. systemctl enable httpd
  12. systemctl start httpd
  13. systemctl status httpd
  14. vim /etc/fstab
  15. mount -a

二 扩大OS Disk的容量

1 VM停机

  1. az vm deallocate -g hwmd -n hwmd01

2 扩大OS Disk的Size

查看disk情况;

  1. az disk list --o table

扩大Disk的size:

  1. az disk update --resource-group hwmd --name osdisk_3yQQnL1V5E --size-gb

三 在VM中Resize OS Disk的容量

1 start vm

  1. az vm start -g hwmd -n hwmd01

2 ssh到VM进行删除partition,重新创建partition(数据不会丢失)

  1. fdisk /dev/sda
  2. Command (m for help): u
  3. Changing display/entry units to cylinders (DEPRECATED!).
  4. Command (m for help): p
  5. Disk /dev/sda: 64.4 GB, bytes, sectors
  6. Device Boot Start End Blocks Id System
  7. /dev/sda1 * Linux
  8. /dev/sda2 Linux
  9. Command (m for help): d
  10. Partition number (,, default ):
  11. Partition is deleted
  12. Command (m for help): n
  13. Partition type:
  14. p primary ( primary, extended, free)
  15. e extended
  16. Select (default p): p
  17. Partition number (-, default ):
  18. First cylinder (-, default ):
  19. Using default value
  20. Last cylinder, +cylinders or +size{K,M,G} (-, default ):
  21. Using default value
  22. Partition of type Linux and of size 59.5 GiB is set
  23. Command (m for help): p
  24. Disk /dev/sda: 64.4 GB, bytes, sectors
  25. Device Boot Start End Blocks Id System
  26. /dev/sda1 * Linux
  27. /dev/sda2 Linux

此时所有的容量都用满了。保存后重新启动

3 resize OS Disk

CentOS7以上机器的命令为:

  1. xfs_growfs -d /dev/sda2

CentOS6的机器命令为:

  1. resize2fs /dev/sda

可以看到OS Disk已经是60G的容量了。

  1. [root@hwmd01 ~]# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/sda2 60G .3G 59G % /

四 捕获Image

1 VM内通用化

  1. waagent -deprovision

2 Azure平台对VM进行通用化

  1. az vm deallocate -g hwmd -n hwmd01
  2. az vm generalize -g hwmd -n hwmd01

3 捕获Image

  1. az image create -g hwmd --name hwmdimage --source hwmd01

五 从这个Image创建VM

1 创建VM

  1. az vm create -g hwmd -n hwmd03 --authentication-type password --admin-user hengwei --admin-password xxxx --image hwmdimage

2 SSH到VM查看Disk和访问的情况

  1. [root@hwmd03 ~]# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/sda2 60G .3G 59G % /
  4. /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的更多相关文章

  1. 【机器学习 Azure Machine Learning】使用VS Code登录到Linux VM上 (Remote-SSH), 及可直接通过VS Code编辑VM中的文件

    问题描述 在平常的工作习惯中,如果使用VS Code做脚本的开发,是一个非常好用的工具,现在也可以通过VS Code的不同方式来连接到Linux VM中(ssh), 第一种是VS Code的Termi ...

  2. py3.5 telnet的实例(在远程机器上批量创建用户)

    import sysimport telnetlibimport time HOST = ["172.18.217.12","172.18.217.13"]#往 ...

  3. 在 Azure 上使用 Docker运行 Mono

    Docker 是最近相当热门的一个名词,它是一个基于 Linux Container 的轻量化的虚拟技术,而微软也相当积极与 Docker 合作,在 Azure 上支持这个火热的技术,并且提供简单的方 ...

  4. Azure上采用Json Template从已有的VHD创建VM

    从已有的VHD创建VM是使用Azure中经常要操作的内容. 本文将介绍如何采用Json Template从已经有的VHD创建VM. 一.准备VHD 在我的Azure账户中选择一台VM,如下图: 查看其 ...

  5. 【Azure Developer】使用Microsoft Graph API 如何批量创建用户,用户属性中需要包含自定义字段(如:Store_code,Store_name等)

    Microsoft Graph 是 Microsoft 365 中通往数据和智能的网关. 它提供统一的可编程模型,可用于访问 Microsoft 365.Windows 10 和企业移动性 + 安全性 ...

  6. (视频) 《快速创建网站》2.1 在Azure上创建网站及网站运行机制

    现在让我们开始一天的建站之旅. 本文是<快速创建网站>系列的第2篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http:// ...

  7. 如何在Azure上创建和部署云服务

    Azure 管理门户提供两种方法可用来创建和部署一个云服务:快速创建和自定义创建. 本主题说明如何使用快速创建方法来创建新的云服务,然后使用上传来上载和部署一套在 Azure 的云服务.当您使用此方法 ...

  8. (视频)《快速创建网站》2.1 在Azure上创建网站及网站运行机制

    现在让我们开始一天的建站之旅. 本文是<快速创建网站>系列的第2篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 1. 网站管理平台WordPress和 ...

  9. 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 ...

随机推荐

  1. node中session存储与销毁,及session的生命周期

    1.首先在使用session之前需要先配置session的过期时间等,在入口文件app.js中 app.use(express.session({ cookie: { maxAge: config.g ...

  2. awk中使用shell变量

    方法:使用-v参数. 对于多个shell变量使用多个-v 有个关于shell变量中的空格问题:

  3. Kafka详解五:Kafka Consumer的底层API- SimpleConsumer

    问题导读 1.Kafka如何实现和Consumer之间的交互?2.使用SimpleConsumer有哪些弊端呢? 1.Kafka提供了两套API给Consumer The high-level Con ...

  4. vc 自删除

    // delself.cpp : 定义控制台应用程序的入口点.// #include "stdafx.h"#include <windows.h>#include &l ...

  5. ajax01简介

    (Asynchronous JavaScript and XML)Ajax :异步 JavaScript 和 XML,一种允许浏览器和服务器通信进行少量数据交换而无需重新加载整个网页,以实现更新部分网 ...

  6. vue v-if with v-for

    遍历和条件判断混合使用示例. <!DOCTYPE html> <html> <head lang="en"> <meta charset= ...

  7. 用外部物理路由器时使用Neutron dhcp-agent提供的metadata服务(by quqi99)

    作者:张华  发表于:2015-12-29版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 环境搭 ...

  8. 阿里云 linux 找回mysql root密码

    不小心手贱修改了密码,而且使用phpMyAdmin这种自动生成密码,又没记录密码,真实醉了   搜了半天,问题多多,想过回滚磁盘到昨天,在阿里云已经买了付费找密码 最后终于自己解决了,其实很简单 cd ...

  9. css 单行和多行文本溢出显示省略号

    如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览. 实现方法: overflow: hidden; te ...

  10. Win7使用之查端口,杀进程

    对 Win7 的 cmd 使用不熟练,这里记录下经常用到的命令吧! 查看所有端口占用情况:netstat -ano 查看指定端口占用情况:netstat -ano | findstr "80 ...