Vitaliy
В доке написано: Molecule leverages Ansible’s docker_container module, by mapping variables завтра покавыряю модуль docker_container , там есть networks ipv4_address
Igor S
Подскажите как можно было бы решить следующее. В 1-ой таске делаю ssh форвард и хочу, чтобы он висел в фоне. 2-ая таска, по задумке, использует уже имеющийся коннект из 1-ой. Проблема в том, что при имеющимся плейбуке, 1-ая таска не заканчивается, пока не истечет sleep 300 - name: "prepare ssh forward" gather_facts: "no" hosts: - localhost tasks: - name: "prepare ssh forward" local_action: raw ssh -f -J host1.local -L 4443:10.10.10.10:443 host2.local sleep 300 - name: "ctl zabbix" gather_facts: "no" hosts: - "host3.local" roles: - role: "role_with_connect_to_localhost:4443"
Sergey
да
https://docs.ansible.com/ansible/latest/reference_appendices/faq.html#how-do-i-configure-a-jump-host-to-access-servers-that-i-have-no-direct-access-to
Sergey
дока жи
Artyom
Всем привет. Ребят вопрос есть Борюсь с synchronize в плэйбуке synchronize: mode: pull src: /path/to/file dest: /path/to/file delegate_to: <удаленный хост> дает ошибку Could not determine controller hostname for rsync to send to Что он хочет от меня? в cli rsync норм копирует
Igor S
https://docs.ansible.com/ansible/latest/reference_appendices/faq.html#how-do-i-configure-a-jump-host-to-access-servers-that-i-have-no-direct-access-to
Понял. Можешь помочь разложить мой вариант с jump хостом из таски на правильный вариант, с использованием материала из доки? Сложность вызывает наличие проксирования через бастион + проброс портов через SSH.
[IPT] Dmitry
ребят, кто писал свои callback plugins. поделитесь best practice и как вообще их правильно писать. я попробовал - вышло так себе. работает, но не особо совместимо с другими плагинами
Igor S
Прям сейчас не смогу, позже.
ОК. Попробовал вот так, результат не изменился: - name: "prepare ssh forward" gather_facts: "no" hosts: - localhost tasks: - name: "set facts" set_fact: ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q host1.local"' - name: "prepare ssh forward" local_action: raw ssh -f -L 4443:10.10.10.10:443 host2.local sleep 300 - name: "ctl zabbix" gather_facts: "no" hosts: - "host3.local" roles: - role: "role_with_connect_to_localhost:4443"
[IPT] Dmitry
Если я правильно помню, то одновременно будет активен только один плагин.
я видел в примере где-то несколько через запятую в callback_whitelist. но по ощущениям работает только последний
Anton
Боюсь быть послан опять писать на питоне, вопрос - как при фэйле хотя бы одного хоста в группе всю группу засунуть в фэйлед для последующей обработки хостов через .retry?
[IPT] Dmitry
я видел в примере где-то несколько через запятую в callback_whitelist. но по ощущениям работает только последний
и конкретно в моём случае stdout_callback тоже слетает на дефолтный, хотя и callback не для него
[IPT] Dmitry
о чём и речь.
# enable callback plugins, they can output to stdout but cannot be 'stdout' type. #callback_whitelist = timer, mail
[IPT] Dmitry
это из дефолтового конфига
[IPT] Dmitry
короче, вот мой говнокод callback plugin для телеги. нужна говнокритика https://github.com/dfwmlb/ansible-callback-telegram
Отделение Bereke Bank
Отделение Bereke Bank
а socks обязательно?
[IPT] Dmitry
а socks обязательно?
поправил. теперь нет. но у меня нет возможности адекватно проверить. на прокси сижу
Sergey
На мой взгляд, правда, необходимость использования переменных окружения добавляет ложку дёгтя.
Sergey
А не, вижу, у тебя реализована поддержка параметров из конфига. Вполне норм.
Отделение Bereke Bank
Может кому пригодится https://github.com/dfwmlb/ansible-callback-telegram #ansible #telegram #bot
Отделение Bereke Bank
ты теперь звезда
[IPT] Dmitry
[IPT] Dmitry
Мама, я в телевизоре 😏
Serg
фигачь в апстрим)
[IPT] Dmitry
да ну не, это же совсем прототип. я сам знаю, чего там ещё можно и нужно допилить. и ещё половину попросят
Alexandr
Подскажите пожалуйста такую штуку реально реализовать?
Alexandr
- include_role: name: app/test when: {% if "{{ variable }}" is defined and "{{ variable1 }}"is defined %} vars: tt: t1: ee t2: rr {% elif "{{ variable }}" is defined and "{{ variable1 }}"is defined %} vars: tt: t1: ee {% endif %}
Aleksey
@ultralisc ты любишь такое. как написать тесты на ансибл роль которая автоматом проверят бекапы прода ? это e2e ?
Fedor V
t2: "{{ (variable is defined and variable1 is defined)|ternary('rr',omit) }}"
Alexandr
Отделение Bereke Bank
Отделение Bereke Bank
Типа валидности восстановленных данных
Aleksey
ну... что ты подразумеваешь под "проверкой бекапов"? я что данные после востановления можно использовать...
Aleksey
я вполне понимаю как написать эту роль и уже думаю в середине дела. но вот какой "тип теста" я при этом сделаю в молекуле я чот хз.
Aleksey
кажется я где то видел крутилку, которая позволяла запустить роль в изоляции от других переменных
Aleksey
или что то такое
shadow
народ, пока не забыл.... vmware_inventory скрипт не поддерживает тэги, так?
shadow
надо юзать новый плагин для этого?
元帥
Добрый день, интересует такой вопрос: возможно ли изменить размер дисков на существующей виртуальной машине с помощью модуля vmware_guest? В документации примеров с увеличением существующих дисков не нашёл.
shadow
я увеличивал, когда с тэмплэйта создавал виртуалку
shadow
проблема в том, шо тебе один хрен надо на уровне ОС расширять
shadow
шринкать нельзя стопудово
shadow
на увеличение должно сработать на лету, у меня же сработало с тэмплейтом... как я понял оно его развернуло и кастомнуло
shadow
лучше протестить на всякий
元帥
я увеличивал, когда с тэмплэйта создавал виртуалку
Я с темплейта тоже увеличивал, сейчас увеличил на существующей, но мне не понятно, как увеличить не первый диск, а к примеру пятый, как задать нужный индекс диска в playbook'е.
shadow
думаю так disk: -size: 100 -size: 200
shadow
но нужно сматчить все размеры, чтобы ненароком не увеличить
shadow
что не надо
shadow
ещё есть vmware_guest_disk, там можно с iscsi контроллером и юнит номером работать
Lev
@ultralisc ты любишь такое. как написать тесты на ансибл роль которая автоматом проверят бекапы прода ? это e2e ?
А что роль делает то? Идет за бэкапом и раскатывает его? Необычно немного на ансибл выглядит. Задача сводится видимо к развернуть «прод» и раскатить бэкап. Звучит интересненько. 1. Делаем отдельный сценарий 2. В prepare.yml разворачиваем инфру 3. Converge.yml гоним раскатку бэкапа 4. Verify.yml чекаем что оно работает Но вобще давай деталей
Lev
ну... что ты подразумеваешь под "проверкой бекапов"? я что данные после востановления можно использовать...
Давай попробуем конкретезировать. Тебе надо восстановить бд например. 1. Prepare = установка бд, накатка «текущей версии» 2. Converge = накатка бэкапа 3. Verify = проверка бд. Делаем select count *, или какие там проьзовательские запросы и сравниваем с эталоннми Еслт не бд а инфра. Мож взять функциональные тесты от разрабов и их прогонять?
Vadim
как ключ для авторизации с хоста ансибла раскидать по серверам? и принять ключ с серверов к себе
George
руками)
George
Я вчера задавал этот вопрос
George
но никто так и не ответил, пришлось на 50 серваков руками расскидать
Vadim
я раскидал
Vadim
--- - hosts: all tasks: - name: make direcotry file: path: "/home/admin/.ssh" state: directory - name: create empty file file: path: "/home/admin/.ssh/authorized_keys" state: touch - name: put pubkey lineinfile: path: "/home/admin/.ssh/authorized_keys" line: "{{ pubkey }}"
Vadim
только странность, иногда пропадает связь, если ansible all -m ping а потом ansible all -m ping -l группа
Vadim
то перестает подключаться
Vadim
приходится опять --ask-pass ключ вставлять
Vadim
я думал только в 1 раз надо добавлять
Vadim
чтобы fingerprint добавить
Vadim
руками)
еще ssh-copy-id есть как бы
George
еще ssh-copy-id есть как бы
Я через него и делал
George
комон, залезать на каждый сервер в ручную что ли ? 😂
Vadim
я не помню, почему у меня без пароля не авторизуется
Vadim
не сработало походу