inqfen
А домен example.com
Balagur
В общем hostname -d как в ansible получить? :)
Oleg
Может кто подсказать есть ли возможность в apt добавить сразу несколько репозиториев? Например uviverse и ppa:certbot/certbot.
Что бы не растягивать это на отдельные таски.
Oleg
Oleg
ansible_hostnqn?
Oleg
ansible host -m setup | grep ansible_domain
Oleg
Не думаю что это из dns
Отделение Bereke Bank
Jungo
коллеги а как посоветуете деплоить ключ пользователя c сервера A на удаленный сервер B
а ansible при этом работает на ноутбуке C ?
Отделение Bereke Bank
Ldap
George
Я обычно использую отдельный ключ для CI, причём приватный ключ с паролем лежит прямо в репе. А у CI в переменных пароль для ssh-add для расшифровки.
Vladislav 👻
Jungo
так же, как на сервер А
но ключ то на сервере A
как заставить ansible взять его оттуда занести локально наноут и потом залить на сервер B?
Vladislav 👻
вы не поняли, не должен сам собой появляться ключ на сервере А
Vladislav 👻
и уж тем более, вы не должно идти туда за ним
Vladislav 👻
если хотите именно "взять ключ с сервера А и положить на сервер В" - то вам путь в баш и прочее
Vladislav 👻
если же вы хотите хоть как-то документировать свою инфру и контролить её, то ключ должен быть у вас в проекте с ансиблом, который катает эьтот ключ на любой, какой вам надо сервер
Jungo
George
Если что, у меня во времена shinken'а (nagios'а) был код, который раскатывал публичный ключ сервера мониторинга по всем соседям. Собственно, был тривиальный: cat pub.key|regsiter, а потом его по всем серверам в authorized_keys.
George
... Я практически сломался. Как в ansible-test intergration передать секрет? В файл я писать не хочу, а все перменные окружения он сбрасывает. Пикатности добавляет то, что это github а токен светить не хочется от слова "совсем".
Sergey
Dan
народ, как определяется иерархия переменных? У меня есть бук в котором определены vars, он использует роль в которой есть vars и defaults. Откуда будут взяты значение переменных, если переменные везде с одними названиями?
UglyKoyote
Dan
Отделение Bereke Bank
Dan
Dan
play vars: 12 role vars: 15 вот почему я их не смог задавить. Очень странный порядок конечно...
Vladimir
Если коротко - не юзай vars)
Maksim
Vladimir
Если интересно, вот хороший доклад, который описывает, как строить роли.
И там в том числе затрагивается момент с приоритетом переменных, и другими аспектами, рекомендую.
https://youtu.be/MAnKtZqud1s
Dan
Dan
ансИмбл... ппц :)
Vladimir
Вруби х2,
И там последние 20 минут вопросы. Км хочешь кшн
Dan
Dan
include у него инклайд... ну блин :)
Vladimir
Anonymous
Влад 🇺🇦
Всем привет, помогите,
gs_ip: [8.8.8.8, 9.9.9.9]
gs_hostname: [gs-01, gs-02]
wl_ip: [1.1.1.1, 2.2.2.2]
wl_hostname: [wl-01, wl-02]
- debug: msg="Public ip - {{ item.name }}, Hostname - {{ item.groups }}"
loop:
- { name: '{{ gs_ip }}', groups: '{{ gs_hostname }}' }
- { name: "{{ wl_ip }}", groups: "{{ wl_hostname }}" }
получаю
Public ip - [u'8.8.8.8', u'9.9.9.9'], Hostname - [u'gs-01', u'gs-02']
Public ip - [u'1.1.1.1', u'2.2.2.2'], Hostname - [u'wl-01', u'wl-02']
нужно поучить на выходе
Public ip - 8.8.8.8, Hostname - gs-01
Public ip - 9.9.9.9 Hostname - gs-02
Public ip - 1.1.1.1, Hostname - wl-01
Public ip - 2.2.2.2, Hostname - wl-02
Lamobot
Всем привет, помогите,
gs_ip: [8.8.8.8, 9.9.9.9]
gs_hostname: [gs-01, gs-02]
wl_ip: [1.1.1.1, 2.2.2.2]
wl_hostname: [wl-01, wl-02]
- debug: msg="Public ip - {{ item.name }}, Hostname - {{ item.groups }}"
loop:
- { name: '{{ gs_ip }}', groups: '{{ gs_hostname }}' }
- { name: "{{ wl_ip }}", groups: "{{ wl_hostname }}" }
получаю
Public ip - [u'8.8.8.8', u'9.9.9.9'], Hostname - [u'gs-01', u'gs-02']
Public ip - [u'1.1.1.1', u'2.2.2.2'], Hostname - [u'wl-01', u'wl-02']
нужно поучить на выходе
Public ip - 8.8.8.8, Hostname - gs-01
Public ip - 9.9.9.9 Hostname - gs-02
Public ip - 1.1.1.1, Hostname - wl-01
Public ip - 2.2.2.2, Hostname - wl-02
https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#with-together
Влад 🇺🇦
- debug: msg="Public ip - {{ item[0] }}, Hostname - {{ item[1] }}"
with_together:
- "{{ gs_ip }}"
- "{{ gs_hostname }}"
Влад 🇺🇦
пробовал, но не понимаю как сюда запихуть еще wl_ip и wl_hostname
Lamobot
Влад 🇺🇦
есть, спасибо большое
Alex
Alex
более православно
Aliaksei
может кто знает для systemd *.timer при изменении настроек хватает тлько сделать daemon reload или нет, т.к reload самого таймера не поддерживается
Failed to reload *.timer: Job type reload is not applicable for unit *.timer.
Aliaksei
похоже что оно вообще само пересчитывается, т.к ansible запустил хэндлер но не пометил что он что-то поменял: systemd: name=*.timer state=started enabled=yes daemon_reload=yes но время LEFT изменилось, 8min left -> 27min left - т.е изменения работают 🤷♂️
Отделение Bereke Bank
У модуля systemd в name можно использовать * ?
Отделение Bereke Bank
Aleksey
Aleksey
Тесты они сделать не смогут никогда
Vladimir
Я смог)
Как конференции начнутся покажу
Aleksey
И этапы и теги и разные дистры
Vladimir
Именно на такой модели
Aleksey
Либо покрытие будет только happy path в 5%
Aleksey
Ибо каждый тег это тест
Aleksey
Переход на 2.5 это отлично показал
Vladimir
Либо покрытие будет только happy path в 5%
Ну если ты гарантируешь работу на определенном диапазоне значений - тестами это покроешь.
Плюс так можно до типизации и di контейнеров с зависимостями дойти, тут спор о покрытии то вечный)
Aleksey
M
—ignore-warnings в помощь)))
Aleksey
короче о том что бы "рекомендовать" этот доклад есть много сомнений. а вот задать вопрос этим товарищам как они уйдут от write only кода хочется. но попозже. скажем через годика два
Aleksey
хотя в целом для интерпрайзов два года не срок.
Vladimir
Aleksey
Речь про коллекции?
коллекции тут врятли чем то помешают. они довольно опциональная хотя и милая фича.
речь про то что ансибл довольно сильно меняется со времем. скажем монорепные плейбуки написаные под 2.4 после 2.5 оказались весьма сломаны из-за механизма обработки тегов.
Aleksey
такого плана изменения происходят довольно часто
Aleksey
с тракторными ролями у вас получается комбинаторный взрыв колва необходимых тестов.
смена версии ансибла ко всем типичным тестам на
* обработку переменных меняющих поведение (скажем 3 такие переменные)
* обработку разных дистров (скажем 3 дистра)
* обработку особых extra-vars (ну пусть 1)
* обработка всех тегов, раз уж вы попали в эту ловушку. (скажем 2)
добавляется ещё версия ансибла
итого тестов в самом ванильном случае надо
3×3×1×2×2 = 36.
да там с каким то перекрытием они будут и можно срезать пусть на треть. пусть будет 20 тестов.
я и бал.
Aleksey
и чем тракторнее тем больше вероятность того что следующий апдейт всё раздоблает
Gleb
Aleksey
Aleksey
хотя я знаю как можно еще.
Aleksey
можно забить болт кстати. так тоже можно.
Aleksey
на 3-5 лет можно зафризить версию ансибла и осей.