簡體   English   中英

如何在使用打包程序創建 AMI 期間調整根文件系統的大小?

[英]How to resize the root filesystem during AMI creation with packer?

我遇到了一些 apache 日志填得太快以至於根文件系統不夠大的問題。

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

如何在 AMI 創建期間調整根 FS 的大小以使其准備好供以后使用?

為了實現我的結果,我在打包程序配置中添加了一個 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 項目

包裝工討論

autoresize-ebs-root-volume-on-aws-amis

ami-block-device-mappings-example

你可以只添加一個塊設備映射 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM