2

我遇到了一些 apache 日志填得太快以至于根文件系统不够大的问题。

我正在使用使用 packer 和 centos 6 创建的 AMI。

如何在 AMI 创建期间调整根 FS 的大小以准备好以后使用?

4

2 回答 2

1

为了实现我的结果,我在打包器配置中添加了一个 user_data_file 脚本,如下所示:

      "user_data_file": "/root/packer_userdata.sh", 

因此,我在打包器 user_data_file 中添加了以下代码;我使用了来自 puppet 的 facter 来获取我需要的信息,但你可以使用任何你想要的东西,甚至可以让它保持不变。

# resize root fs if the volume is bigger
echo "ROOT DISK RESIZING" > /tmp/root_disk_resize.log
# wait for facter
while ( ! /usr/bin/facter ); do sleep 15 ; done >> /tmp/root_disk_resize.log 2>&1
OS_RELEASE=$(facter operatingsystemmajrelease 2>&1 )
ROOT_DEVICE=$(facter ec2_block_device_mapping_root 2>&1 )
# Install epel
rpm -ivh https://ftp.fau.de/epel/epel-release-latest-${OS_RELEASE}.noarch.rpm >> /tmp/root_disk_resize.log 2>&1
yum install -y cloud-utils-growpart gdisk >> /tmp/root_disk_resize.log 2>&1
# resize partition
growpart -v  ${ROOT_DEVICE} 1   >> /tmp/root_disk_resize.log 2>&1
# resize filesystem
resize2fs -p ${ROOT_DEVICE}1    >> /tmp/root_disk_resize.log 2>&1
# remove epel to avoid to interfere with the rest of the installation
rpm -e epel-release        >> /tmp/root_disk_resize.log 2>&1

分区将被扩展,并且在下一次重新启动期间,FS 将调整为完整卷大小,尽管在 AMI 创建期间它不可见。

我发现了一些有趣的信息和项目:

linux-rootfs-resize 项目

封隔器讨论

自动调整大小-ebs-root-volume-on-aws-amis

ami 块设备映射示例

于 2017-06-14T09:10:51.503 回答
0

您只需添加块设备映射 insi

  "launch_block_device_mappings": [
    {
      "device_name": "/dev/xvda",
      "volume_type": "gp2",
      "volume_size": 20,
      "delete_on_termination": true
    }
  ]

您必须检查您的 AMI 使用的设备名称可能是 /dev/sda1 或 /dev/xvda

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html

于 2021-03-11T16:23:45.500 回答