Cloud-init не выполняет команду awscli в данных пользователя

Требуется помощь, чтобы исправить ошибку и разрешить экземпляру запускать скрипт данных пользователя без проблем.

Проблема: cloud-init не может выполнить Команда awscli. Я упомянул настраиваемый сценарий (который будет присутствовать в экземпляре, созданном моим AMI) для запуска как часть данных пользователя. Настраиваемый сценарий не работает в разделе, где упоминается команда awscli.

Описание: Я пытаюсь добиться автоматического развертывания содержимого приложения, как только экземпляр будет создан из определенного AMI. Для этого я разместил настраиваемый скрипт в экземпляре и создал AMI, который будет служить шаблоном для будущих экземпляров. Пользовательский скрипт имеет очень простую логику развертывания и управления жизненным циклом службы приложения (app || web || start || stop || status). Проблема возникает, когда сценарий выполняет команду aswcli для извлечения военного или статического содержимого из корзины S3. Это дает следующую ошибку:

Фрагмент из cloud-init-output.log:

Mar 12 04:06:06 ip-XXX cloud-init: Deploying Static Content XXX.zip at location /var/www/html
Mar 12 04:06:06 ip-XXX cloud-init: /opt/deploy/deployment_V4.sh: line 94: aws: command not found
===================
Mar 12 04:06:06 ip-XXX cloud-init: Deploying WAR XXX.war at location /opt/tomcat/webapps
Mar 12 04:06:06 ip-XXX cloud-init: /opt/deploy/deployment_V4.sh: line 80: aws: command not found

Принимая во внимание, что если я вручную запустил тот же настраиваемый сценарий развертывания из экземпляра, он развернет контент без ошибок. Также, если я запустил сценарий «Пользовательские данные» вручную на экземпляре, развертывание завершится без каких-либо ошибок.

Фрагмент:

[root@ip-XXX]# cd /var/lib/cloud/instance/scripts/
[root@ip-XXX scripts]# ./part-001
HTTPD Service is Stopped
TOMCAT Service is Stopped
VERSION is V4
Deploying Static Content XXX.zip at location /var/www/html
download: s3://<PATH>/XXX.zip to ../../../../../www/html/XXX.zip
Web Deployment Successful
VERSION is V4
Deploying WAR XXX.war at location /opt/tomcat/webapps
download: s3://<PATH>/XXX.war to ../../../../../../opt/tomcat/webapps/XXX.war
App Deployment Successful
HTTPD Service is Started
TOMCAT Service is Started

Пользовательские данные:

#!/bin/sh
VERSION=V4
AD=/opt/deploy

#Run auto-deployment script
sh /opt/deploy/deployment_${VERSION}.sh stop
sh /opt/deploy/deployment_${VERSION}.sh web
sh /opt/deploy/deployment_${VERSION}.sh app
sh /opt/deploy/deployment_${VERSION}.sh start

ПРИМЕЧАНИЕ:

1) ОС - CentOS7_64Bit

2 ) Экземпляр регистрируется в роли включения s3 при запуске.

3) AWSCLI установлен на экземпляре и является частью AMI.

aws --version
aws-cli/1.11.56 Python/2.7.5 Linux/3.10.0-514.6.2.el7.x86_64 botocore/1.5.19
1
задан 12 March 2017 в 07:34
2 ответа

Где двоичный код aws?

which aws

Полагаю, это каталог, где aws не находится в пути.

0
ответ дан 3 December 2019 в 23:33

Благодаря @Robo проблема решена.

В его направлении я добавил "export PATH=~/.local/bin":\$PATH" в составе "User Data", что сделало трюк.

.
1
ответ дан 3 December 2019 в 23:33

Теги

Похожие вопросы