Гайрат
Как вариант
Отделение Bereke Bank
hosts: "{{ group_names[workers_group_name] + group_names[masters_group_name] }}"
работает. спасибо. Только не group_names , а groups
元帥
Уважаемые знатоки, у меня есть master.yml, куда я импортирую 2 playbook'а, а третий playbook у меня использует виндовые модули и соответственно при импорте мне надо переопределить ansible_connection=winrm; ansible_winrm_server_cert_validation: ignore; remote_user: win_admin, как этого достичь?
Sergey
работает. спасибо. Только не group_names , а groups
Мб, я их путаю, обычно уточняю в доке, если нужны.
Отделение Bereke Bank
В 2.9 поломалось это set_fact: kube_masters_san: "{{ kube_api_san_dns + kube_api_san_ips + ['IP:127.0.0.1', 'IP:{{ kube_service_ip }}'] }}" Теперь надо так. Странно что оно вообще работало раньше. Новый вариант выглядит логичнее ['IP:127.0.0.1', 'IP:' + kube_service_ip ]
Timur
Скобки внутри скобок не работают
Отделение Bereke Bank
Так это всегда так было
в 2.8 работало 😐 сегодня обновил ансибл, прогнал плейбук - сломалось потому что в итоге в subject_alt_name прилетала херня
Alex
подскажите - как бы избежать дубликатов - name: Upgrade app import_tasks: upgrade/{{ app_installer_type }}.yml app_installer_type принимает 3 значения - docker/native/archive для первых двух - таски совпадают, а вот для archive свой набор. Хотелось бы избежать дублирования содержимого для upgrade/native.yml и upgrade/docker.yml
Отделение Bereke Bank
подскажите - как бы избежать дубликатов - name: Upgrade app import_tasks: upgrade/{{ app_installer_type }}.yml app_installer_type принимает 3 значения - docker/native/archive для первых двух - таски совпадают, а вот для archive свой набор. Хотелось бы избежать дублирования содержимого для upgrade/native.yml и upgrade/docker.yml
Типа так. В default.yml сунь то что дублируется - name: Include tasks for selected containerd repository include_tasks: "{{ item }}" vars: params: files: - '{{ containerd_repository }}.yml' - default.yml loop: "{{ q('first_found', params, errors='ignore') }}"
Alex
между native/docker и archive нет общих тасков
Alex
они полностью разные
Отделение Bereke Bank
между native/docker и archive нет общих тасков
ну вот у тебя будет файл archive.yml и default.yml (с содержимым native/docker)
Отделение Bereke Bank
и если app_installer_type != archive - будут выполняться такси из default.yml
Отделение Bereke Bank
а что такое containerd_repository?
это просто пример) в моем случае там либо epel, либо docker-ce
Отделение Bereke Bank
выдернул кусок из своей роли
Anonymous
выдернул кусок из своей роли
Всем добрый день, кто может поделиться советом: - Есть плейбук, который крайним таском запускает баш скрипт(который ребутает сервер) Т.е теряется коннект к серверу и ансибл думает, что плейбук не прошел, т.к. его отключило от сервера fatal: [server_name]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Shared connection to server_name closed.", "unreachable": true} каким образом можно сказать: если отключило от серевера в результате выполнения таска - это не ошибка, считай таск успешно завершенным
Anonymous
Anonymous
да, есть
- name: Execute chameleon script shell: main.sh start when: "'ip a/12' not in ip_exists.stdout" register: chameleon_result ignore_errors: yes notify: notify_slack
Dmitriy
да, есть
а нельзя из скрипта выдрать reboot и сделать его отдельным таском ?
Anonymous
а нельзя из скрипта выдрать reboot и сделать его отдельным таском ?
это разумный вариант, а в случае если из скрипта не выдрать, существуют ли какие еще варианты?
Dmitriy
благодарю за наводку
да не за что. Может кто более элегантное решение найдет
Отделение Bereke Bank
Есть же модуль reboot
Vladislav 👻
кто-нибудь запускал на маке молекулу через третий питон? расскажите плиз, что и как вы делаете, ибо у меня с последними версиями падает питон на этапе TASK [Wait for instance(s) deletion to complete]
Vladislav 👻
и к слову, почему то молекула не создает Dockerfile.j2...
Vladislav 👻
Tadeusz
у меня такое на федоре было недавно (из-за митогена)
Vladislav 👻
Нашел вот такое: https://github.com/dw/mitogen/issues/467
Vladislav 👻
Но тут вроде как пробрасывают митоген, но у меня не взлетело почему-то...
Peter
Коллеги, что является хорошей практикой, держать все сущности в одном inventory или разбить на несколько? Планируется 64 хоста, 30 единиц сетевого оборудования, 24 сервера. Оборудование будет разбросано географически. Если можно приложите пример большого YAML inventory. Спасибо.
Yury
https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#directory-layout Меня первый вариант устроил. только инвентори в директорию инвентори запихал.
Mik
Кто знает, как суда передать порт ? delegate_to: 8.8.8.8:333 так не работает
Aleksey
Кто знает, как суда передать порт ? delegate_to: 8.8.8.8:333 так не работает
Скорее всего ни как. Пользуйтесь inventory для указания порта
Mik
у меня плагин для динамики
Mik
там не получится один хост так захардкодить
Vladislav 👻
Инвентарь можно по папкам раскладывать в виде групп
инвентори можно по файлам раскладывать ввиде групп, папки дают только лишнюю вложенность...
Vladislav 👻
и стоит заметить, что последовательность объявления все равно важна, т.е. все файлы/папки инвентори все равно объединеются в один, в котором группа должна объявится раньше, чем включение хостов/групп в эту группу
Kirill
Всем привет! Для старта деплоя на сервак, мне нужно законнектится по openvpn в пайплайне. Я делаю openvpn --config $OPENVPN_CONFIG_PATH --daemon и после делаю запуск ansible плейбука. Локально это работает, но в гитлабе нифига. Что не так может и быть? И может прям ansible можно коннект сделать первым плейбуком?
Kirill
Опять же гитлаб не на тачке, поэтому нужен коннект)
Vladislav 👻
гитлаб не в одной сети, где надо катать плейбук? о_0
Kirill
нет, к сожалению)
Vladislav 👻
тут гадалок нет, смотрите, что у вас на гитлабе тогда
Ilya
Всем привет, подскажите пожалуйста каким способом можно данные из файла с хоста на ремоут в файл добавить ансиблом? не полностью копировать файл а именно текст файла
Ilya
lifeline вроде же не копирует текст? суть такая echo "$(cat /home/user01/file)”(это сделать на хосте, куда то вывод сохранить) >> /etc/filebeat/filebeat.yml (добавить на ремоуте сохраннёную с хоста инфу)
Dmitry
Всем привет! Кто-нибудь пользуется win_chocolatey? Как с его помощью удалять метапакеты?
Vladislav 👻
shell: cat <file> register: xz delegate_to: localhost lineinfile: path: <remote file> line: "{{ xz }}"
Vladislav 👻
+- так, дальше сами
Ilya
shell: cat <file> register: xz delegate_to: localhost lineinfile: path: <remote file> line: "{{ xz }}"
Супер, спасибо огромное) дальше разберусь) просто недавно начал осваивать поэтому на Вы с некоторыми модулями пока)
Vladislav 👻
Супер, спасибо огромное) дальше разберусь) просто недавно начал осваивать поэтому на Вы с некоторыми модулями пока)
но я бы не рекомендовал вам из локальных файлов что-то тянуть на удаленные сервера, лучше описать это в инвентори в переменной и закидывать на удаленный хост
Dmitry
choco uninstall имя_пакета -x на ансибле нужно.
Ilya
но я бы не рекомендовал вам из локальных файлов что-то тянуть на удаленные сервера, лучше описать это в инвентори в переменной и закидывать на удаленный хост
Я вот пытался нагуглить можно ли текст засунуть в переменную, но так и не понял как это сделать. данные для подключения эластика надо раскинуть по конфигам на разных серваках, но в сами плэйбуки писать эти данные нельзя записывать. Секурность. Можно ли этот же текст на старте плейбука записать в переменную и раскидывать?
Vladislav 👻
если нужно как-то шифровать, то есть ansible-vault
Vladislav 👻
в конфиг ansible.cfg в корне проекта можно закинуть вот такую строчку: vault_password_file=~/.vault_pass.txt положить пароль в этот файл и шифровать переменные/файлы из коробки, при этом при раскатке оно само расшифруется
Ilya
Я знаю про шифрование, но у меня условия, чтобы эти данные лежали где нить в /etc/cfg/и на ту папку имели доступ ансибл и рут) и ансибл при установке модулей эластика дописывал в конфиг cloud.id cloud.auth именно из этого файла беря данные) поэтому кроме как копи хост ремоте паст, что то хз)
Ilya
А чем плох копи паст?) Почему не рекомендуете?) Веть ращовая операция по факту
Vladislav 👻
потому что по факту инфру вы не задокументировали, все полностью зависит от вашего локального компа и тех файлов, которые у вас лежат...
Aleksandr
привет. а как можно заставить ансибл фейлить таски, если любой из них выполняется дольше N секунд?
Lamobot
привет. а как можно заставить ансибл фейлить таски, если любой из них выполняется дольше N секунд?
https://docs.ansible.com/ansible/latest/user_guide/playbooks_async.html The async tasks will run until they either complete, fail or timeout according to their async value.
Aleksandr
благодарочка
Vladislav 👻
Git
В /etc/cfg? Сомневаюсь...
inqfen
Я к тому, что юзать гит, без этого цирка
Vladislav 👻
Опять таки, если это есть в гит, что мешает положить в соседнюю репу с инфрой?
Vladislav 👻
Я к тому, что юзать гит, без этого цирка
Ааа, ну я это бай дефолт подразумеваю
Roman
День добрый, подскажите как при выполнении плейбука была возможность производить ввод данных при их запросе, пароли имена явки etc
Андрей
Зачем тебе это? Не легче это все через переменную передавать?
Roman
Зачем тебе это? Не легче это все через переменную передавать?
к примеру чтоб при команде shell 7z x archive.tar , архив запросит пароль и его можно было ввести
Андрей
Так передай через переменную значения логин/пароль, не пойму твоих страданий