AWS статический IP-адрес - PullRequest
0 голосов
/ 25 мая 2018

Я использую агент развертывания кода AWS и развертываю свой проект на сервере с помощью плагина bitbucket.

Агент развертывания кода сначала выполняет файлы сценариев, в которых есть команда для выполнения моего проекта весенней загрузки.

Поскольку у меня есть две среды: одна разработка и другая продукция.Я хочу, чтобы скрипт делал вещи по-разному в зависимости от среды, то есть двух разных экземпляров.

Мой план - получить статический IP-адрес aws, который сопоставлен, и определить окружение (производство или этап).

Как получить эластичный IP-адрес с помощью команд sh.

отредактировано

Ответы [ 4 ]

0 голосов
/ 09 июня 2018

Статический IP будет работать.

Вот более естественный способ CodeDeploy решить эту проблему - создать 2 группы развертывания CodeDeploy, одну для вашей среды разработки, а другую для вашей рабочей среды.Затем в своем сценарии вы можете использовать переменные среды, которые CodeDeploy установит во время развертывания, чтобы понять, в какую среду вы развертываете.

Вот сообщение в блоге об использовании переменных среды CodeDeploy: https://aws.amazon.com/blogs/devops/using-codedeploy-environment-variables/

0 голосов
/ 25 мая 2018

Запрос к серверу метаданных

eip=`curl -s 169.254.169.254/latest/meta-data/public-ipv4`
echo $eip
0 голосов
/ 28 мая 2018

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

Мне просто нужно было знать среду, в которой я нахожусь, чтобы выполнять определенные действия.Поэтому я установил переменную среды в независимом файле сценария, в котором установлена ​​переменная среды, а ее значение равно значению среды.Например: скажем, в файле env-variables.sh Профиль экспорта = stage

В файле сценария, где команды должны выполняться в зависимости от среды, я получаю к нему доступ таким образом

 source /test/env-variables.sh
    echo current profile is $profile
    if [ $profile = stage ]
    then
        echo stage
    elif [ $profile = production ]
    then
        echo production
else
        echo failure
    fi

Надеюсь, кто-нибудь найдет это полезным

0 голосов
/ 25 мая 2018

Вы можете сделать следующее:

id=$( curl http://169.254.169.254/latest/meta-data/instance-id )
eip=$( aws ec2 describe-addresses --filter Name=instance-id,Values=${id} | aws ec2 describe-addresses | jq .Addresses[].PublicIp --raw-output )

Приведенное выше получает instance-id из метаданных, затем использует aws cli для поиска эластичных IP-адресов, отфильтрованных по идентификатору из метаданных.Используя jq, этот выход затем может быть проанализирован по IP-адресу, который вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...