команда aws cli с использованием профиля в качестве переменной - PullRequest
0 голосов
/ 03 мая 2019

в настоящее время я использую задачи в ansible. В задачу входит команда aws cli, как показано ниже:

command: aws ec2 describe-instances --region myregion --profile myawsprofile --filters

Она отлично работает, когда пробежала

ansible-playbook my.yml 

Теперь мой вопрос: Iиметь несколько профилей aws и не требовать жесткого кода в командах aws cli (в задачах).хотел использовать переменную для профиля, поэтому любая переменная, переданная в профиль, будет выполнять задачу и запускать ansible-playbook.

Попросить кого-либо предложить, как поступить для этого.

Я смотрел на переменные средыв aws cli, но мало помогло.

Ответы [ 3 ]

1 голос
/ 03 мая 2019

Если вы действительно хотите использовать командную задачу, а не задачи ec2_instance, вы можете сделать следующее:

command: aws ec2 describe-instances --region myregion --profile {{ myawsprofile }} --filters

, а затем запустить вашу пьесу

ansible-playbook my.yml  -e "myawsprofile=production"
0 голосов
/ 04 мая 2019

У вас есть две опции (измените [profile name] ниже на фактическое значение):

  • Либо укажите --profile [profile name] в качестве опции команды для каждой команды.
  • В качестве альтернативы, установите профиль для использования в качестве переменной среды.В Mac и Linux используется AWS_PROFILE или AWS_DEFAULT_PROFILE

    $ export AWS_PROFILE=[profile name]
    

    или в Windows

    C:\> setx AWS_PROFILE [profile name]
    

Преимущество использования последнего метода заключается в том, что один разнастроенный, он сохраняет свое значение в течение всего сеанса терминала (или до тех пор, пока он не будет заменен другим именем профиля).

Ссылка: глава Именованные профили документации AWS CLI

0 голосов
/ 03 мая 2019

Вам будет лучше с ec2_instance .

В дополнение к этому, вы можете просмотреть другие 100+ Amazon модули.

...