您现在的位置是:首页 > 文章详情

运维编排场景系列---Linux数据盘扩展分区和文件系统

日期:2019-11-26点击:495

场景介绍

本文讲述如何利用OOS实现扩容linux数据盘后扩展其分区和文件系统。目前支持仅有一块数据盘,扩展已有MBR分区或扩容裸设备文件系统,具体流程请参考帮助文档扩展分区和文件系统_Linux数据盘

本文具体场景:为一块已分区的数据盘通过OOS进行扩容,以及扩展对应的分区和文件系统。
前提条件:对应ECS实例只挂载了一块只有主分区的数据盘。
m0

执行OOS模板扩容后:
m1

操作流程

请先登陆运维编排控制台,如果未开通此服务请放心开通,运维编排是免费的。

创建模板

a.点击我的模板,创建模板
m2

b.选择空白模板,点击选取
m3

c.选取YAML栏,复制粘贴以下模板

FormatVersion: OOS-2019-06-01 Description: en: Resize disk and expand file system. zh-cn: 扩容数据盘(Linux)。 Parameters: instanceId: Description: en: The id of instance. zh-cn: 实例ID。 Type: String diskId: Description: en: The id of disk. zh-cn: 磁盘ID。 Type: String newSize: Description: en: The size of disk. zh-cn: 磁盘大小。 Type: Number MinValue: 20 MaxValue: 1999 action: Description: '' Type: String AllowedValues: - 扩展已有MBR分区 - 扩容裸设备文件系统 OOSAssumeRole: Description: The RAM role to be assumed by OOS. Type: String Default: OOSServiceRole RamRole: '{{ OOSAssumeRole }}' Tasks: - Name: startInstance Action: ACS::ECS::StartInstance Description: en: Starts the ECS instances. zh-cn: 启动实例。 Properties: instanceId: '{{ instanceId }}' - Name: checkInstanceOSType Action: ACS::CheckFor Description: en: Get ECS instance zone id. zh-cn: 获取实例的ZoneId。 Properties: Service: ECS API: DescribeInstances Parameters: InstanceIds: - '{{ instanceId }}' DesiredValues: - linux PropertySelector: Instances.Instance[].OSType - Name: createSnapshot Action: 'ACS::ECS::CreateSnapshot' Description: en: Create a snapshot for a cloud disk. zh-cn: 为一块云盘创建一份快照。 Properties: diskId: '{{ diskId }}' Outputs: snapshotId: Type: String ValueSelector: snapshotId - Name: resizeDisk Action: ACS::ECS::ResizeDisk OnError: deleteSnapshot Description: Resize disk. Properties: instanceId: '{{ instanceId }}' diskId: '{{ diskId }}' newSize: '{{ newSize }}' - Name: choseResizeType Action: ACS::Choice Description: Choose next task by CloudAssistant status. Properties: DefaultTask: ExpandExistedPartition Choices: - When: 'Fn::Equals': - '扩容裸设备文件系统' - '{{ action }}' NextTask: ExpandNewPartition - Name: ExpandExistedPartition Action: 'ACS::ECS::RunCommand' Description: en: Run cloud assistant command. zh-cn: 执行云助手命令。 OnSuccess: deleteSnapshot OnError: resetDisk Properties: commandContent: |- echo '#!/bin/bash' >> resizedisk.sh; echo 'umount /dev/vdb1' >> resizedisk.sh; echo 'echo "d' >> resizedisk.sh; echo 'w' >> resizedisk.sh; echo '" | fdisk -u /dev/vdb' >> resizedisk.sh; echo 'echo "n' >> resizedisk.sh; echo 'p' >> resizedisk.sh; echo 1 >> resizedisk.sh; echo -e '\n' >> resizedisk.sh; echo -e '\n' >> resizedisk.sh; echo 'w' >> resizedisk.sh; echo '" | fdisk -u /dev/vdb' >> resizedisk.sh; echo 'partx -u /dev/vdb' >> resizedisk.sh; echo 'sleep 10s' >> resizedisk.sh echo 'resize2fs /dev/vdb1' >> resizedisk.sh; echo 'mount /dev/vdb1 /mnt' >> resizedisk.sh; echo 'df -h' >> resizedisk.sh; /bin/bash resizedisk.sh instanceId: '{{ instanceId }}' commandType: RunShellScript Outputs: commandOutput: Type: String ValueSelector: invocationOutput - Name: ExpandNewPartition Action: 'ACS::ECS::RunCommand' Description: en: Run cloud assistant command. zh-cn: 执行云助手命令。 OnSuccess: deleteSnapshot OnError: resetDisk Properties: commandContent: |- resize2fs /dev/vdb df -h instanceId: '{{ instanceId }}' commandType: RunShellScript Outputs: commandOutput: Type: String ValueSelector: invocationOutput - Name: resetDisk Action: ACS::ECS::ResetDisk Description: en: Resets disk by snapshot. zh-cn: 回滚磁盘。 Properties: instanceId: '{{ instanceId }}' diskId: '{{ diskId }}' snapshotId: '{{ createSnapshot.snapshotId }}' - Name: deleteSnapshot Action: 'ACS::ExecuteAPI' Description: en: Delete the specified snapshot. zh-cn: 删除指定的快照。 Properties: Service: ECS API: DeleteSnapshot Parameters: SnapshotId: '{{ createSnapshot.snapshotId }}' Outputs: commandOutput: Type: List Value: 'Fn::If': - 'Fn::Equals': - '扩容裸设备文件系统' - '{{ action }}' - '{{ ExpandNewPartition.commandOutput }}' - '{{ ExpandExistedPartition.commandOutput }}'

d.输入模板名称,点击创建模板 
m4

   

执行模板

a.创建执行
m5

b.设置参数
m6

c.确认风险并执行
m7

查看结果

m8



系列文章

主题文章

阿里云重磅发布云上自动化利器——运维编排OOS

最佳实践

玩转运维编排服务的权限:Assume Role+Pass Role
阿里云运维编排新功能:一键批量克隆ECS
批量在多台ECS内执行命令

场景系列

运维编排场景系列----更新ECS镜像
运维编排场景系列----给ECS实例自动打TAG
运维编排场景系列----从实例中拷贝文件到OSS
运维编排场景系列----给实例加到SLS机器组
运维编排场景系列----检测MFA功能状态
运维编排场景系列----每日统计多Region实例的运行状态
运维编排场景系列----如何使用jq
运维编排场景系列----分批到机器上运行命令
运维编排场景系列----更新镜像后自动更新伸缩配置镜像
运维编排场景系列----向Linux实例上传文件
运维编排场景系列----运行远端shell脚本
运维编排场景系列----在ECS实例上运行Ansible-playbook
运维编排场景系列----下载JVM堆栈到OSS
运维编排系列场景----将实例的固定公网IP转换为其它新EIP
运维编排场景系列----自动定时升级临时带宽
运维编排场景系列----批量更新云助手客户端
运维编排系列场景----批量释放实例
运维编排场景系列----ECS实例系统快照下载到本地
运维编排场景系列----批量更换系统盘
运维编排场景系列----基于镜像的日常发布
运维编排场景系列----自动创建多个区域同类型存储空间
运维编排场景系列----Autoscaling 通过LifecycleHook在实例启动时安装软件

原文链接:https://yq.aliyun.com/articles/728287
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章