0

Я последовал за эти 3 руководства:Создать экземпляр EC2 по анзибль с AWS учетные данные

, и я написал эту анзибль игру

--- 
- hosts: localhost 
    connection: local 
    gather_facts: false 

    tasks: 
    - include_vars: aws_credentials.yml 
    - name: Creating EC2 Ubuntu instance 
     ec2: 
     instance_type: t1.micro 
     image: ami-86e0ffe7 
     region: us-west-2 
     key_name: my-aws-key 
     zone: us-west-2a 
     vpc_subnet_id: subnet-04199d61 
     group_id: sg-cf6736aa 
     assign_public_ip: yes 
     count: 1 
     wait: true 
     volumes: 
      - device_name: /dev/sda1 
      volume_type: gp2 
      volume_size: 10 
     instance_tags: 
      Name: ansible-test 
      Project: test 
      Ansible: manageable 

     register: ec2 

затем я бегу ansible-playbook create-ec2.yml -v --private-key ~/.ssh/my-key --vault-password-file ~/.password/to_ansible_vault

и я получаю это сообщение

PLAY [LOCALHOST] ************************* **************************************

ЗАКАЗ [include_vars] **** ************************************************** ******

нормально: [локальный] => { "ansible_facts": { "ec2_access_key": "decrypted_acces_key_XXXXX", "ec2_secret_key": "decrypted_secret_key_XXXXX"}, "изменил" ложь}

ЗАДАЧА [Создание экземпляра EC2 Ubuntu] **************************************** ****

фатальный: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "Никакой обработчик не был готов к аутентификации. Проверялись 1 обработчик. ['HmacAuthV4Handler'] Проверьте ваши учетные данные"}

НЕТ БОЛЬШИХ ХОЗЯЙСТВ ЛЕВЫЙ ************************************************** ***********

[WARNING]: Не удалось создать файл повторной попытки «create-ec2.retry». [Errno 2] Нет такого файла или каталога: ''

PLAY RECAP ******************************** *************************************

localhost: ok = 1 changed = 0 unreachable = 0 не удалось = 1

, когда я побежал ansible-vault view aws_credentials.yml --vault-password-file ~/.password/to_ansible_vault я получил читаемый содержание зашифрованного aws_credentials.yml, что-то вроде этого:

--- 
ec2_access_key: "XXXXX" 
ec2_secret_key: "XXXXX" 

Кроме того, когда я использовал простые aws_credentials .yml, это не сработает. Только когда я экспортирую свои учетные данные, он работает без сбоев. Может ли кто-нибудь мне помочь, как я могу написать playbook для создания экземпляра ec2 с учетными данными, хранящимися в зашифрованном файле?

ответ

2

Я думаю, что вы должны предоставить свои ключи непосредственно модулю ec2 в этом случае.
Попробуйте это:

- name: Creating EC2 Ubuntu instance 
     ec2: 
     aws_access_key: "{{ ec2_access_key }}" 
     aws_secret_key: "{{ ec2_secret_key }}" 
     instance_type: t1.micro 
     image: ami-86e0ffe7 
     region: us-west-2 
     ... 

The code предполагает, что он только проверяет аргументы модуля и переменные окружения, а не переменных хоста.

Смежные вопросы