Я пытаюсь загрузить экземпляр Centos7 EC2 (ami-02eac2c0129f6376b) с пользовательскими данными bash. Поскольку он работает как 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
Эти задержки ЧРЕЗВЫЧАЙНО болезненны, потому что в настоящее время я нахожусь на этапе проб и ошибок при создании новых сценариев пользовательских данных.
Что я могу сделать?
А ошибка в политике SELinux Включенный в RHEL и CentOS 7, sudo ждал ровно 25 секунд для каждой команды. Эта ошибка была исправлена с помощью selinux-policy-3.13.1-229.el7_6.10
пакет. Вам следует создать новый AMI с обновленным этим пакетом (а желательно всей системой).
Хотя лучше разобраться, почему sudo
является медленным и решите это, вы можете сгруппировать свои команды вместе, чтобы вызвать sudo только один раз. Внутри вашего скрипта вы можете сделать что-то вроде этого:
sudo -Hu centos bash <<EOF
somecommand
somecommand2
morecommands
EOF