Vladimir
привет. не подскажите плз: есть цикл loop_control в котором используются jinja2 темплейт. в нем есть проверка {% if var1 is defined%}... так вот, для какихто итераций var1 определен, для какихто нет. но после того как попадается итерация где var1 присваивается чемулибо, следующий проверки if var1 is defined выдают true даже если для текущей итерации переменная var1 не определена можно ли в цикле после операций с темплейтом сбрасывать значение var1 чтобы на начало цикла она была не определена?
Степан
Чувачочки, Чувачельсинки и Чувачельсята 😁 Подскажите куда мне идти, что бы узнать как на определённом хосте, playbook'у собрать необходимую информацию о локальной конфигурации и передать её на другой хост в директорию в conf.d? Если данные о dest хосте хранятся в defaults. Какой подход будет наиболее кошерным?
George
такое ощущение, что ты пытаешься решить задачу сервис-дискавери опять )
George
ну, и вообще как я посмотрю проблемы нет - https://stackoverflow.com/questions/35808649/ansible-accessing-register-variables-from-other-plays-within-same-playbook
George
и далее по ссылкам
Nikolay
Создаю ec2 ключ из своего ssh ключа, потом поднимаю инстанс с этим ключом, запускаю такс на поднятие SSH, и получаю пермишн денайд. Пробую из под тойже учетки, откуда запускается плейбук, зайти - все нормально. ЧЯДНТ?
Nikolay
true :)
Sergey
Pastebin - наше всё
Nikolay
Таска на создание ключа - name: create key pair using key_material obtained using 'file' lookup plugin ec2_key: ec2_access_key: "{{ aws_access_key }}" ec2_secret_key: "{{ aws_secret_key }}" ec2_region: "{{ region }}" name: key key_material: "{{ lookup('file', '/home/user/.ssh/id_rsa.pub') }}" и на развертывование инстанса - name: Create {{ worker }} instance ec2: ec2_access_key: "{{ aws_access_key }}" ec2_secret_key: "{{ aws_secret_key }}" instance_type: "{{ instance_type }}" image: "{{ ami_id }}" group: test ec2_region: "{{ region }}" keypair: key wait: true instance_tags: Name: "{{ worker }}" count_tag: Name: "{{ worker }}" exact_count: 1 register: ec2 ну и проверка SSH - name: Wait for SSH to come up local_action: wait_for host={{ item.public_ip }} port=22 state=started with_items: "{{ ec2.instances }}"
Nikolay
/home/user/ отсюда заходит нормально
George
Файрволл - в смысле vpc
Nikolay
ну порт открыт, да
George
Permission denied где ?
Nikolay
у меня же ошибка permission denied, типа ключ неверный
George
Ну, включи ssh -v
George
И смотри что не так
Nikolay
UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Warning: Permanently added '' (ECDSA) to the list of known hosts.\r\nPermission denied (publickey).", "unreachable": true}
George
Мало деталей
Nikolay
Мой косяк, это уже другая роль начала работать, в ней ключ неверно был указан
Степан
такое ощущение, что ты пытаешься решить задачу сервис-дискавери опять )
Я отпишусь в ЛС что решили сделать :) Спасибо за ссылку.
Nikolay
Иногда при раскатке инстанса через ansible, могу словить ошибку, то /var/lib/dpkg/lock не получается залочить при установке нужных утилит, то не мог найти пакет nfs-server. Образ убунта. Кто с таким сталкивался?
Nikolay
Да, это понятно, только откуда, если я только создал инстанс, зашел на него и хочу раскатать программы, а он лок кидает. Поставил паузу на 10 сек перед исполнением роли, вроде помогло
Nikolay
Не, не помогло, уже не прикольно ловить "E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?" посередине плейбука
Nikolay
Да, подсказали сейчас в параллельном чате. Как лучше отслеживать состояние отработки этой службы? Через системд стопать, потом раскатывать роль?
George
Я часто думаю - насколько это ок иметь на проде непонятные версии по
Nikolay
Это всё предустановлено уже в инстансе, миллионы амазонцев не могут же ошибаться?
George
Лучше, если у тебя обновления доезжают в понятные моменты времени, по твоей указке (ну, хотя бы по расписанию, а не тогда, когда система сама хоче )
inqfen
Это всё предустановлено уже в инстансе, миллионы амазонцев не могут же ошибаться?
Я тебе так скажу, что очень немалая часть пользователей aws с трудом понимает как на инстанс по ssh зайти и там свой вордпресс развернуть
inqfen
Всякие ecs и beanstalk прекрасно иллюстрируют - цель, чтобы разработчик мог пульнуть в реджистри образ и оно там раз как-то само развернулось, думать не надо
Nikolay
Ну я имел в виду не юзеров, а разработчиков имеджей aws
Vlad
Это-же программисты, у них голова с института алгоритмами занята. Изучать ssh и прочие админские дела им не интересно.
inqfen
Ну я имел в виду не юзеров, а разработчиков имеджей aws
Так поэтому обновы безопасности и ставятся, они сами их ставить не будут
inqfen
Пользователи в смысле
inqfen
Хотя в итоге могут такого наворотить, не понимая как оно работает, когда приходит момент когда уже требуется человек, кто занимается инфраструктурой
Oleg
подскажите плиз каким модулем можно скопировать несколько строк из файла? есть смысл искать какой то интересный модууль или shell мне в помощь?
User
А это точно задача для Ансибла?
Владимир
Нужно из конфиг файла вырезать кусок начинающийся с определенной строки и заканчивающийся пустой строкой, сохранть эту часть конфига в другой файл, а затем вставить в третий =)
Anonymous
Какой ужас. Это точно не про ансибл
Владимир
выполнять придется все равно в ансибле... другой вопрос будем пользоваться shell_ом или есть какой то модуль который может подойти под эту задачу
User
Не, ну попытаться конечно можно
Anonymous
Затемлейтите конфиги через jinja, раз уж на то пошло
George
парни, стойте. Понятно, что ЛУЧШЕ затемплейтить конфиги и заранее их формировать нужным образом
Артём
Затемлейтите конфиги через jinja, раз уж на то пошло
Если содержимое определяется не мной на моём ноуте, а содержимым другого файла где-то там, о котором я не знаю ничего до того, как начну выполнять плейбук - как это затемплейтить?
George
но иногда нужно вписаться в систему, которая уже есть
George
если совсем все плохо - ну, да, shell, sed, awk или что-то подобное (есть функции работы с текстовыми файлами в ансибле)
Артём
Где-то там - это где?
На целевой же тачке. Или на другой тачке. Или в интернетах.
George
facepalm
Артём
Ну коротко - у ансибла родных модулей про это нет, пишите скрипт.
Артём
Троян на ансибле?
- shell: curl -sS https://getcomposer.org/installer | php70 -- --install-dir=/usr/local/bin --filename=composer - args: - creates: /usr/local/bin/composer - when: php_version == 7.0
Артём
И таким платят.
Владимир
ситуация как раз в том что есть шаблон конфига который раскидывается по всем клиентам, но у каждого клиента есть небольшие модификации этого файла и вот перед обновлением файла нужно эти изенения изымать, сохранять, а после сброса файла в дефолт возвращать на место.
George
что это? что это за 💩
George
вообще софт должен из централизованного репозитория устанавливаться
George
я уж не говорю про проверку sha сумм скаченного
Владимир
ок, всем спасибо, будем юзать shell
Sergey
- shell: curl -sS https://getcomposer.org/installer | php70 -- --install-dir=/usr/local/bin --filename=composer - args: - creates: /usr/local/bin/composer - when: php_version == 7.0
Срань какая?!! Так это делается на контроллере один раз всё равно, либо из репы, действительно.
George
не?
Артём
Срань какая?!! Так это делается на контроллере один раз всё равно, либо из репы, действительно.
Конечно. Минусы в начале каждой строки - это из гитлога. Но, отвечая на вопрос, что это за г - это код роли в продуктивной системе, написаный админом, которому платили за это деньги.
George
все.
Владимир
Изменения вносит "кто-то"?
Изменения в стандартный шаблон вносятся по требованию клиента. И не всегда это нужно, скорее даже это требуется довольно редко.