前提
- AWS EC2のCentOS 7インスタンスで稼働する。
- CentOS 8で動くかどうかは未確認。
説明
- EC2にAmazon Linuxインスタンスを立てると、セカンダリプライベートIPアドレス設定についても、特に手動設定することなく、良い感じに設定してくれる。
- これは、ec2-net-utilsというAWS謹製のユーティリティによるものだが、CentOSの公式AMIには未導入。
- なので、それを導入して、同様に設定してしまおう、という話。
やること
- ec2-net-utilsのソースを取得する。
- 当該ソースに含まれるSRPMを使ってRPMパッケージをリビルドする。
- RPMをインストールする。
- ec2-net-utilsのSystemdサービスユニットでネットワークインターフェースを設定する。
- すると、セカンダリプライベートIPアドレスもよしなに設定してくれる。
導入から設定までを一気にやってくれるスクリプト
ec2-net-utils.sh
#!/bin/sh
yum -y install git rpm-build
git clone https://github.com/aws/ec2-net-utils
rpmbuild --rebuild ec2-net-utils/ec2-net-utils-*.amzn2.src.rpm
rpm -Uvh ${HOME}/rpmbuild/RPMS/noarch/ec2-net-utils-*.rpm
for _if in `ip link | grep '^[0-9]' | awk '{print($2);}' | tr -d ':' | grep -v '^lo$'`; do
systemctl enable ec2net-ifup@${_if}
systemctl start ec2net-ifup@${_if}
done
実行方法
- 適当なディレクトリで前述のスクリプトを実行する。
ec2-net-utils.sh
- あとは再起動の度に、サービスとして読み直して設定してくれる。