Назад | Перейти на главную страницу

Команды sudo в cloud-init работают МЕДЛЕННО! Как исправить?

Я пытаюсь загрузить экземпляр Centos7 EC2 (ami-02eac2c0129f6376b) с пользовательскими данными bash. Поскольку он работает как root, и мне нужно создать много вещей как пользователь centos, я использую sudo -Hu centos <cmd> много раз. Каждый вызов представляет собой 25-секундную задержку. У меня сотни. Что я могу сделать, чтобы это ускорить?

Это известная проблема, но я не могу найти решения.

Я пытался:

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