AWS EC2 - обновление yum не работает в AutoScaling LaunchConfig UserData - PullRequest
0 голосов
/ 05 января 2019

Я могу успешно запустить sudo yum update при подключении к моему экземпляру EC2. Однако, когда я присоединяю ту же команду к userData моей конфигурации запуска, я вижу следующую ошибку (в /var/log/cloud-init-output.log):

launch script..
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd


 One of the configured repositories failed (Unknown),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

Мой сценарий:

#!/bin/bash
echo "launch script.."
sudo yum update -y
sudo yum install java-1.8.0 -y
aws s3 cp s3://bucket/app.jar ./app.jar
java -jar app.jar >> out.log

Как запустить команды yum при запуске экземпляра EC2?

1 Ответ

0 голосов
/ 05 января 2019

Убедитесь, что у вас есть маршрут к Интернету из вашего экземпляра EC2. Обычно это означает либо общедоступный IP-адрес, либо маршрут к экземпляру / шлюзу NAT, а также шлюз Интернета в вашем VPC.

Может случиться так, что сценарий пользовательских данных начнет выполняться до того, как будет установлено соединение. Вам может потребоваться проверить, что экземпляр имеет исходящий доступ к сети, прежде чем ваш скрипт запустит обновление yum, например:

#!/bin/bash
echo "launch script.."

until ping -c1 www.google.com &>/dev/null; do
    echo "Waiting for network ..."
    sleep 1
done

yum update -y
# other things here

Существуют и другие варианты ожидания сети ( здесь и здесь ).

Также обратите внимание, что сценарии пользовательских данных выполняются от имени пользователя root, поэтому вам не нужен sudo.

...