Гайрат
Как вариант
Отделение Bereke Bank
元帥
Уважаемые знатоки, у меня есть master.yml, куда я импортирую 2 playbook'а, а третий playbook у меня использует виндовые модули и соответственно при импорте мне надо переопределить ansible_connection=winrm; ansible_winrm_server_cert_validation: ignore; remote_user: win_admin, как этого достичь?
Timur
Отделение 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
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
Alex
между native/docker и archive нет общих тасков
Alex
они полностью разные
Отделение Bereke Bank
и если app_installer_type != archive - будут выполняться такси из default.yml
Alex
Отделение 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}
каким образом можно сказать: если отключило от серевера в результате выполнения таска - это не ошибка, считай таск успешно завершенным
Dmitriy
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 и сделать его отдельным таском ?
Lamobot
Dmitriy
Anonymous
Отделение Bereke Bank
Есть же модуль reboot
Vladislav 👻
кто-нибудь запускал на маке молекулу через третий питон? расскажите плиз, что и как вы делаете, ибо у меня с последними версиями падает питон на этапе TASK [Wait for instance(s) deletion to complete]
Vladislav 👻
и к слову, почему то молекула не создает Dockerfile.j2...
Peter
Vladislav 👻
Vladislav 👻
Tadeusz
у меня такое на федоре было недавно (из-за митогена)
Vladislav 👻
Нашел вот такое: https://github.com/dw/mitogen/issues/467
Vladislav 👻
Но тут вроде как пробрасывают митоген, но у меня не взлетело почему-то...
Peter
Коллеги, что является хорошей практикой, держать все сущности в одном inventory или разбить на несколько? Планируется 64 хоста, 30 единиц сетевого оборудования, 24 сервера. Оборудование будет разбросано географически.
Если можно приложите пример большого YAML inventory.
Спасибо.
Timur
Yury
https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#directory-layout
Меня первый вариант устроил. только инвентори в директорию инвентори запихал.
Mik
Кто знает, как суда передать порт ? delegate_to: 8.8.8.8:333 так не работает
Aleksey
Mik
у меня плагин для динамики
Mik
там не получится один хост так захардкодить
Vladislav 👻
и стоит заметить, что последовательность объявления все равно важна, т.е. все файлы/папки инвентори все равно объединеются в один, в котором группа должна объявится раньше, чем включение хостов/групп в эту группу
Kirill
Всем привет! Для старта деплоя на сервак, мне нужно законнектится по openvpn в пайплайне. Я делаю openvpn --config $OPENVPN_CONFIG_PATH --daemon и после делаю запуск ansible плейбука. Локально это работает, но в гитлабе нифига. Что не так может и быть? И может прям ansible можно коннект сделать первым плейбуком?
Kirill
Опять же гитлаб не на тачке, поэтому нужен коннект)
Vladislav 👻
гитлаб не в одной сети, где надо катать плейбук? о_0
Kirill
нет, к сожалению)
Vladislav 👻
тут гадалок нет, смотрите, что у вас на гитлабе тогда
Ilya
Всем привет, подскажите пожалуйста каким способом можно данные из файла с хоста на ремоут в файл добавить ансиблом? не полностью копировать файл а именно текст файла
Vladislav 👻
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
Dmitry
choco uninstall имя_пакета -x на ансибле нужно.
Vladislav 👻
Vladislav 👻
если нужно как-то шифровать, то есть ansible-vault
Vladislav 👻
в конфиг ansible.cfg в корне проекта можно закинуть вот такую строчку: vault_password_file=~/.vault_pass.txt
положить пароль в этот файл и шифровать переменные/файлы из коробки, при этом при раскатке оно само расшифруется
Ilya
Я знаю про шифрование, но у меня условия, чтобы эти данные лежали где нить в /etc/cfg/и на ту папку имели доступ ансибл и рут) и ансибл при установке модулей эластика дописывал в конфиг cloud.id cloud.auth именно из этого файла беря данные) поэтому кроме как копи хост ремоте паст, что то хз)
Ilya
А чем плох копи паст?) Почему не рекомендуете?) Веть ращовая операция по факту
Vladislav 👻
потому что по факту инфру вы не задокументировали, все полностью зависит от вашего локального компа и тех файлов, которые у вас лежат...
Ilya
Aleksandr
привет. а как можно заставить ансибл фейлить таски, если любой из них выполняется дольше N секунд?
Aleksandr
благодарочка
inqfen
Vladislav 👻
Git
В /etc/cfg? Сомневаюсь...
inqfen
Я к тому, что юзать гит, без этого цирка
Vladislav 👻
Опять таки, если это есть в гит, что мешает положить в соседнюю репу с инфрой?
Vladislav 👻
Roman
День добрый, подскажите как при выполнении плейбука была возможность производить ввод данных при их запросе, пароли имена явки etc
Андрей
Зачем тебе это? Не легче это все через переменную передавать?
Андрей
Так передай через переменную значения логин/пароль, не пойму твоих страданий