Я новичок в aws и написал несколько книг для создателей, запуска и остановки EC2. Это работает очень хорошо.
Теперь мне нужно выяснить публичный IP-адрес и изменить IP-адрес в 2 файлах на экземпляре EC2.
Я попробовал несколько фрагментов кода, чтобы добавить «выяснить общедоступный IP-адрес» - вещь, но у меня ничего не работает.
Моя пьеса:
- name: Starting an EC2 Instance
hosts: local
connection: local
vars_files:
- aws_keys.yml
tasks:
- name: starting ec2
ec2:
key_name: ansible
aws_access_key: "{{ aws_access_key }}"
aws_secret_key: "{{ aws_secret_key }}"
instance_ids: ['i-0f3xxxxxxxxxxxx']
region: eu-central-1
state: running
wait: true
Я попробовал это:
- name: ip
command: curl http://169.254.169.254/latest/meta-data/public-ipv4
register: myip
- debug:
var: myip
Но он показывает мне только IP-адрес от моей машины управления ...
Возможно ли добавить этот общедоступный IP-адрес в мою книгу-старт EC2 или мне нужна отдельная книга для этого?
Сегодня я попробовал следующее:
- ec2_instance_facts:
region: eu-central-1
register: ec2_metadata
- debug: msg="{{ ec2_metadata.instances }}"
- debug: msg="{{ ec2_metadata.instances[0].public_ip_address }}"
Я получил эту ошибку:
ЗАДАЧА [ec2_instance_facts] ******************************************* ************************************************** *
Возникла исключительная ситуация во время выполнения задачи. Чтобы увидеть полную трассировку, используйте -vvv. Ошибка: botocore.exceptions.NoCredentialsError: Невозможно найти учетные данные
роковой: [localhost]: не удалось! => {"updated": false, "module_stderr": "Трассировка (последний последний вызов): \ n File \" / root / .ansible / tmp / ansible-tmp-1547803855.77-249661690870165 / AnsiballZ_ec2_instance_facts.py \ ", строка 113, в \
Нужно ли для раздела ec2_instance_facts также aws_secret_keys?
Аааа с клавишами aws это работает:
- ec2_instance_facts:
region: eu-central-1
aws_access_key: Axxxxxxxxx
aws_secret_key: Gz8+Dxxxxxxxxxx
instance_ids:
- i-0f31xxxxxxx
Теперь мне нужно записать общедоступный IP-адрес в var и использовать его для обновления 2 файлов на экземпляре EC2, которые начинаются с playbook.
Есть идеи?