Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

如何在 Linux EC2 服务器上标记 AWS EBS 卷

Posted on 2025-01-07

如何在 linux-ec2 上标记 aws-ebs-volumes-

在过去的几个月里,我的团队决定在我们的环境中更多地利用 Linux,并且我承担了大部分 Linux 管理流程。对于我们的所有资源,我们利用标签来帮助识别资源并将其分组。

对于我们的 Windows 计算机,我们使用 PowerShell 来获取磁盘的潜水符和标签,并相应地标记我们的卷。当我们需要更多磁盘空间时,当我们获得在服务器上扩展驱动器的票据时,这很有帮助。我们获取服务器名称、磁盘盘符和要添加的空间。但是,在控制台中查看时,我们可以看到附加的卷,但 AWS 控制台不会反映/dev/sda1或xvdb中显示的设备名称是 C: 驱动器还是 D: 或其他。

同样的问题也适用于 Linux 服务器。幸运的是,在这两种情况下,卷 ID 都会成为操作系统中磁盘的序列号。因此,我们可以使用它来匹配附加实例的卷 ID,并按照我们认为合适的方式向其添加标签。

寻找坐骑

在我们的环境中,我们将磁盘安装在相同的位置,但如果配置错误,我们将使用安装路径来获取设备 ID,然后对其进行标记。

使用findmnt可以为我们提供挂载路径正在使用的源磁盘。我想查找/mnt/mdf/并找到属于哪个磁盘。

 $ findmnt -noheadings --output SOURCE --target /mnt/mdf /dev/nvme1n1

获取卷 ID

对我们来说幸运的是,当磁盘连接到计算机时,A​​WS 使用卷 ID 作为磁盘上的序列号。我们可以做一些跑腿工作并以我们需要的格式获得它。为此,我使用了命令nvme并且可以通过apt install nvme-cli进行安装。

 $ sudo nvme id-ctrl -v /dev/nvme1n1 | grep "sn" sn : vol03f4v1o75f8lkbbqs

现在我们只需要后半部分,并在vol和其余字符之间添加破折号。我们将使用cut选择:右侧的内容,然后使用tr将vol替换为vol- 。

 $ sudo nvme id-ctrl -v /dev/nvme1n1 | grep "sn" | cut -d ":" -f2 | tr " vol" "vol-" vol-03f4v1o75f8lkbbqs

标记资源

标记 EBS 卷就像标记 EC2 实例一样。在本例中,我想按照操作系统查看卷的方式来标记 AWS 中的卷。

 aws ec2 create-tags --resources vol-03f4v1o75f8lkbbqs ` --tags Key = os-drive-letter,Value = /dev/nvme1n1 Key = os-volume-name,Value = sqldata

这将创建标签:

 os-drive-letter = /dev/nvme1n1 os-volume-name = sqldata

现在,当有人要求扩展 SQL 数据驱动器的卷时,如果连接了多个磁盘,我们就知道它到底是哪一个。

函数式编程

现在我们知道如何标记我们的卷,我们可以制作一个脚本和函数,使制作变得快速而简单。函数式脚本的伟大之处在于能够多次使用同一代码块并获得相同的期望结果。由于我们确实附加了多个卷并将它们安装在同一个位置,因此我们可以使用上面的逻辑来创建一个函数。

 # Usage: # tag_volume "/mount/path" "label-to-use" tag_volume ( ) { [ -z " $1 " ] && echo "No mount path argument supplied" [ -z " $2 " ] && echo "No mount label supplied argument supplied" MOUNTPATH = $1 MOUNTLABEL = $2 echo "looking for $MOUNTPATH to label it as $MOUNTLABEL " MOUNT = " $( findmnt -noheadings --output SOURCE --target $MOUNTPATH ) " echo $MOUNT if [ [ $MOUNT ] ] ; then echo "Fount the mount path ' $MOUNTPATH ' as ' $MOUNT '" else echo "Could not find the mount path $MOUNTPATH " fi VOLID = " $( sudo nvme id-ctrl -v $MOUNT | grep "sn" | cut -d ":" -f2 | tr " vol" "vol-" ) " aws ec2 create-tags --resources $VOLID --tags Key = os-drive-letter,Value = $MOUNT Key = os-volume-name,Value = $MOUNTLABEL echo "On disk $MOUNT created $MOUNTLABEL tag for $VOLID " } tag_volume "/mnt/mdf" "sqldata" tag_volume "/mnt/ldf" "sqllogs" tag_volume "/mnt/tempdb" "tempdb" tag_volume "/" "root"

结论

我能够结合几个不同的流程来获取所需的信息,然后相应地标记附加的 EBS 卷。 tag_volume脚本块是可重复的,可以轻松指定一些变量并让它完成工作;保持我的整体脚本和流程更短。


通过电子邮件回复

原文: https://claytonerrington.com/blog/tagging-aws-ebs-volumes/?utm_source=rss

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • Elad Gil
  • Ellie Huxtable
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme