Alexander
Ну делаешь как-то неправильно.
Игорь
хотя стоп, я debug неправильно дергаю
Игорь
типа итоговый лист это идентификатор переменной
Игорь
да, заработало
Lamobot
В отличие от json_query, фильтр map(attribute="i") не требует никаких зависимостей дополнительных на машине
Игорь
а можно заставить Ansible выводить лог ошибок с переводами строк? Сейчас выводит в одну строку с кучей '\n'
Grek 🇺🇦
указать другой колбек плагин, например дебаг
Игорь
inqfen
https://docs.ansible.com/ansible/latest/plugins/callback.html
inqfen
вот прямо ansible callback plugin, первая ссылка - в доку
Игорь
кстати, у меня ec2_module (ansible 2.9.6) не создает хосты, если указать "assign_public_ip: no" в чем может быть дело?
inqfen
Игорь
https://docs.ansible.com/ansible/latest/plugins/callback.html
я там списка доступных плагинов не вижу
inqfen
Мне тебе вслух читать? >You can use ansible-doc -t callback -l to see the list of available plugins. Use ansible-doc -t callback <plugin name> to see specific documents and examples.
inqfen
Ладно сам не нагуглил, но когда тебе даже ссылку дали, а ты ее не прочитал
Игорь
Скажу то же что и в чате aws - давай выхлоп от таска с подробным verbose
так и я смогу [WARNING]: Unable to modify public ip assignment to False for instance i-0d3400ee56e688e8a. Whether or not to assign a public IP is determined during instance creation. [WARNING]: Unable to modify public ip assignment to False for instance i-0df108f52e230e45c. Whether or not to assign a public IP is determined during instance creation.
Игорь
сорян
inqfen
у ансибла доки говно просто
В данном случае читаешь как говно ты, там ясно сказано как список плагинов посмотреть.
inqfen
И логично что там его нет, ты можешь кастомных надергать/написать сколько угодно и ни в одной доке не будет написано, а что у тебя на машине
Игорь
Тебе тут все ясно в ошибке сказано
"Unable to modify blah blah", причина-то в чем? Особенно если это ответ не от api, а самого ансибла
Игорь
>Whether or not to assign a public IP is determined during instance creation
в смысле создание инстанса это не создание?
Игорь
надо было брать Terraform
inqfen
А ты точно уверен, что его до этого не было? Судя по ошибке он ругается что это производится не при создании
inqfen
Может у тебя регион в кредах дефолтный один, а ты в другой смотришь
Игорь
А ты точно уверен, что его до этого не было? Судя по ошибке он ругается что это производится не при создании
шаг целиком: - name: Provision pasv-validator instances ec2: region: "{{ region }}" key_name: "{{ ssh_key_name }}" # group: default # security group instance_type: "{{ instance_type }}" image: "{{ settings.image_id }}" vpc_subnet_id: "{{ vpc_subnet_id }}" wait: true exact_count: "{{ pasv_count }}" assign_public_ip: false
inqfen
надо было брать Terraform
Кстати в этом плане да, через tf многие вещи в инфре куда удобнее. Но конкретно в данном случае скорее проблема не в ансибле, модулю сто лет в обед
Игорь
aws ec2 describe-instances --region (твой регион)
и что я там должен увидеть?
inqfen
Какие есть инстансы, можешь фильтрануть по параметрам
inqfen
В данном случае он тебе и конкретные id написал
Игорь
ну имя у них у всех одно и то же, id разные. большинство terminated
inqfen
Значит судя по ошибке - инстансы с конкретно этими id были и подходят под описание модулю
Игорь
10 раз подряд сопадает случайная строка из 16 символов?
inqfen
Кстати инстансы в terminated какое-то время отдаются в api aws
inqfen
10 раз подряд сопадает случайная строка из 16 символов?
Я тебе все сказал. Сходи и посмотри id i-0d3400ee56e688e8a и i-0df108f52e230e45c
inqfen
В ошибках они, значит - на момент выполнения таска они уже были
Игорь
как так может быть?
inqfen
Кто там за компом сидит у тебя, я или ты?)
inqfen
Когда-то они были созданы и public ip заассайнен
Игорь
чтобы при создании нового инстанса (таск выше) брался id старого?
Игорь
Когда-то они были созданы и public ip заассайнен
но плейбук не принимает никаких параметров
inqfen
чтобы при создании нового инстанса (таск выше) брался id старого?
Это как раз не создание нового, а поддержание exact count
inqfen
У тебя в нем сказано 2 - значит он делает так, чтобы их было 2. В данном случае - их уже 2
inqfen
А уже у существующих параметр изменить нельзя
Игорь
Это как раз не создание нового, а поддержание exact count
а с чего он поддерживает exact count, если state нигде не сохранен?
Игорь
откуда он берет эти данные?
inqfen
а с чего он поддерживает exact count, если state нигде не сохранен?
https://docs.ansible.com/ansible/latest/collections/amazon/aws/ec2_module.html#parameter-state Давай ты уже начнешь сам читать?
inqfen
откуда он берет эти данные?
По дефолту state present, берет из api, логично же
Игорь
то есть, он считывает по "either instance_ids or instance_tags"
Игорь
интересно
inqfen
When state=running, state=stopped or state=restarted
inqfen
present ←
inqfen
present - это running, stopped или restarted?
inqfen
Нет
inqfen
present - существующий
inqfen
В любом состоянии
inqfen
В общем тебе вроде всю информацию нашел, дальше тебе осталось чтобы ты сам почитал, а не тебе
Игорь
В любом состоянии
ну в данном случае это и есть defined
Игорь
то есть переменная имеет значение, хотя бы и absent
inqfen
Параметр модуля имеет конкретное значение по дефолту - present
Игорь
Параметр модуля имеет конкретное значение по дефолту - present
если present это НЕ "state=running, state=stopped or state=restarted", то почему при не указанном state он смотрит на instance_tags/count_tag?
Игорь
Потому что он указан - present
там не написано ровно ничего про state=present, кроме того, что это значение по умолчанию
inqfen
Все, мне надоело
inqfen
Вместо решения проблемы, про которую все написано и тебе рассказали, ты занимаешься херней
Игорь
проблему я решил, спасибо. я просто запускал плейбук заново на секунду раньше удаления предыдущих инстансов
Игорь
но это не отменяет того, что документация говно и я, в десятый раз ее перечитывая, все еще не вижу ни слова об этом
inqfen
проблему я решил, спасибо. я просто запускал плейбук заново на секунду раньше удаления предыдущих инстансов
Ну так тут явно тогда пофиг на present, что там написать если перевод однозначен - существует