私は、ユーザーデータをcloud-initプログラムに提供することによって、AWS EC2インスタンスでいくつかのEBSボリュームをフォーマットしようとしています。 YAMLベースのクラウド設定フォーマットではなく、シェルスクリプトフォーマットを使用することをお勧めします。ここに私の現在のユーザーデータスクリプトです:は/ dev/sdbとは、打ち上げウィザードを使用して取り付けたEBSボリュームを指しAWS Cloud Initでディスクをフォーマットする
#!/bin/bash
# Format EBS volumes
yum install -y xfsprogs
parted /dev/sdb mktable gpt
parted -a optimal /dev/sdb mkpart primary xfs 0% 100%
parted /dev/sdb name 1 p4db
mkfs -t xfs /dev/sdb1
xfs_admin -L p4db /dev/sdb1
。ここで/var/log/cloud-init-output.logからログ出力されます:
Information: You may need to update /etc/fstab.
Information: You may need to update /etc/fstab.
/dev/sdb1: No such file or directory
Usage: mkfs.xfs
/* blocksize */ [-b log=n|size=num]
/* metadata */ [-m crc=0|1,finobt=0|1]
/* data subvol */ [-d agcount=n,agsize=n,file,name=xxx,size=num,
(sunit=value,swidth=value|su=num,sw=num|noalign),
sectlog=n|sectsize=num
/* force overwrite */ [-f]
/* inode size */ [-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2,
projid32bit=0|1]
/* no discard */ [-K]
/* log subvol */ [-l agnum=n,internal,size=num,logdev=xxx,version=n
sunit=value|su=num,sectlog=n|sectsize=num,
lazy-count=0|1]
/* label */ [-L label (maximum 12 characters)]
/* naming */ [-n log=n|size=num,version=2|ci,ftype=0|1]
/* no-op info only */ [-N]
/* prototype file */ [-p fname]
/* quiet */ [-q]
/* realtime subvol */ [-r extsize=num,size=num,rtdev=xxx]
/* sectorsize */ [-s log=n|size=num]
/* version */ [-V]
devicename
<devicename> is required unless -d name=xxx is given.
<num> is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB),
xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB).
<value> is xxx (512 byte blocks).
/dev/sdb1: No such file or directory
fatal error -- couldn't initialize XFS library
Sep 09 18:40:58 cloud-init[2518]: util.py[WARNING]: Failed running /var/lib/cloud/instance/scripts/part-001 [1]
Sep 09 18:40:58 cloud-init[2518]: cc_scripts_user.py[WARNING]: Failed to run module scripts-user (scripts in /var/lib/cloud/instance/scripts)
Sep 09 18:40:58 cloud-init[2518]: util.py[WARNING]: Running module scripts-user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python2.7/dist-packages/cloudinit/config/cc_scripts_user.pyc'>) failed
Cloud-init v. 0.7.6 finished at Fri, 09 Sep 2016 18:40:58 +0000. Datasource DataSourceEc2. Up 145.89 seconds
のでどうやら、parted
への呼び出しのすべてがうまく働いているが、しかしmkfs
(mkfs.xfs
)とxfs_admin
への呼び出しそうではありません。 parted
は私の/ dev/sdbドライブを問題なくフォーマットできますが、XFSプログラムはそれが存在しないと思いますか?クラウド初期シェル形式を使用してドライブを正しくパーティション分割してフォーマットするにはどうすればよいですか?どんな洞察も大変ありがとう!
スクリプトは、同じ設定で新しく起動されたインスタンスでは動作しますが、クラウド初期化で*実行されていませんか? – Vorsprung
@Vorsprung良い考えで、非クラウド初期化スクリプトとして実行すると、問題が判明しました... – Rabadash8820
クラウド初期化中にLVMパーティション化に関するいくつかの問題に直面します。この問題は、ディスクが遅れて添付されることがあるため、いくつかのチェックステップを追加しています。 'while! bash -c 'udevadm info/dev/sdb && udevadm info/dev/sdb'; 1睡眠する;完了 –