bootstrap bash user-dataを使用したCentos7 EC2インスタンス(AMI-02eac2c0129f6376b)を実行しようとしています。これはrootとして実行され、centosユーザーとして多くのものを作成する必要があるため、 Sudo -Hu centos <cmd>
何度も。呼び出しごとに25秒の遅延が発生します。私は何百人もいます。これをスピードアップするにはどうすればよいですか?
これは既知の問題ですが、解決策が見つかりません。
私が試してみました:
/etc/hosts
ホスト名のエントリprintf "\n127.0.0.1 %s %s\n" "$(hostname -f)" "$(hostname -s)" | tee -a /etc/hosts
sed -Ei 's/\s*myhostname//' /etc/nsswitch.conf
私は現在、新しいユーザーデータスクリプトを作成する試行錯誤の段階にあるため、これらの遅延は非常に苦痛です。
私に何ができる?
Sudo
が遅い理由を理解して解決することをお勧めしますが、コマンドをグループ化して、Sudoを1回だけ呼び出すことができます。スクリプト内では、次のようなことができます。
Sudo -Hu centos bash <<EOF
somecommand
somecommand2
morecommands
EOF
RHELおよびCentOS 7に含まれる SELinuxポリシーのバグ により、Sudoは各コマンドで正確に25秒待機しました。このバグはselinux-policy-3.13.1-229.el7_6.10
パッケージで修正されました。このパッケージ(できればシステム全体)を更新した新しいAMIを作成する必要があります。