web-dev-qa-db-ja.com

cloud-initの `sudo`コマンドは遅いです!直し方?

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
  • /etc/nsswitch.confからmyhostnameを削除します
sed -Ei 's/\s*myhostname//' /etc/nsswitch.conf

私は現在、新しいユーザーデータスクリプトを作成する試行錯誤の段階にあるため、これらの遅延は非常に苦痛です。

私に何ができる?

2
Bruno Bronosky

Sudoが遅い理由を理解して解決することをお勧めしますが、コマンドをグループ化して、Sudoを1回だけ呼び出すことができます。スクリプト内では、次のようなことができます。

Sudo -Hu centos bash <<EOF
somecommand
somecommand2
morecommands
EOF
2
jordanm

RHELおよびCentOS 7に含まれる SELinuxポリシーのバグ により、Sudoは各コマンドで正確に25秒待機しました。このバグはselinux-policy-3.13.1-229.el7_6.10パッケージで修正されました。このパッケージ(できればシステム全体)を更新した新しいAMIを作成する必要があります。

2
Michael Hampton