Roman
meta же не Best Practices, неудобно прыгать между ролями зависимости смортеть
Aleksey
есть ли какой менеджер зависимостей для ансибля?
не использовать внешние роли. лучший менеджер зависимостей :)
Aleksey
это косвенная адресация, чутка другое
ты же в рендер это потом куда то отдашь
Aleksey
тогда фактом придется отрезать лишнее
Sergey
meta же не Best Practices, неудобно прыгать между ролями зависимости смортеть
положим, как лучше сделать, каждый решает сам. у меня вот точно как Алексей написал - не использована мета вовсе.
Алексей
не использовать внешние роли. лучший менеджер зависимостей :)
про reuse кода слышали? Или каждый раз заново писать и копипастить?
Aleksey
а где в ансибле програмирование ?
Sergey
возьму на заметку
Алексей
а где в ансибле програмирование ?
т.е. написание роли это печеньки постряпать? ))
Roman
пишешь роль, добавляешь при необходимости в нужный плейбук, вот и весь реюз кода
Aleksey
т.е. написание роли это печеньки постряпать? ))
написание роли это не програмирование вовсе.
Sergey
это конфигурирование системы конфигурирования 😊))))
Aleksey
и да. ансибл всё ещё норм.
Sergey
а свой написать не вариант?)
У меня уже пара плагинов в репе живёт, так что вариант, но не нужный.
Evgeny
так то такого фильтра вроде нет
Evgeny
можно попробовать через фильтры set или reject/rejectattr, но не факт что выйдет
Evgeny
или в ансибл пулл реквест сделать)
Evgeny
как не старнно прокатило) - hosts: all vars: xxx: a: 1 b: 2 c: 3 tasks: - debug: var: xxx[item] with_items: "{{ xxx|difference({'a':1}) }}"
Evgeny
вот такой вариант выржет ‘a’
Evgeny
точнее физически то не вырежет конечно, но из обработки исключит
Ievgen
если нужен разбор полетов по сильно сложным ветвистым dict - JMESPath решает
Ievgen
http://docs.ansible.com/ansible/latest/playbooks_filters.html#json-query-filter
matt
а как бы ansiblом взять текущее количество минут, увеличить на 3 и установить в переменную?
matt
так не работает {{ ansible_date_time.minute + 3 }}
Ievgen
{{ ansible_date_time.minute|int + 3 }} а так?
matt
сек
matt
не
Ievgen
а откуда вообще ansible_date_time ?
matt
и так тоже "{{ lookup('pipe', 'date +%M -d +3\ minutes') }}" :)
matt
из facts
Ievgen
забыл что у меня было gether facts - false смотрю undefined
Ievgen
а чего не если да
matt
хм, а варинат с int считает то правильно
matt
Ievgen
но делает это каждый раз
matt
но при этом если подставляю это в value, то "\"/tmp/crontabVlHGPu\":1: bad hour\nerrors in crontab file, can't install.\n"}
matt
ахаха, это мой косяк
matt
Sergey
эпично
matt
работает как надо, спасибо)
matt
да, очевидно спать пора
Ievgen
)
Sergey
ну да, а то крон в логи - "[crond] ничего, норм"
matt
выделил лишнего по невнимательности когда копипастил
Ievgen
но кстати я наверное зря удалил коммент про время, если у тебя длинный плейбук а current time нужен на момент старта, а крон делается где то в конце, то минуты могут быть сильно разные
Николаич
А я не сильно перемудрил, что пытаюсь получить серты от LE прямо из плэйбука? Или норм пацаны ручками получают и в крон скрипт обновления ставят?
matt
генерю ключ, запрос и подписываю прям из плэйбука, и норм
Sergey
генерю ключ, запрос и подписываю прям из плэйбука, и норм
С точки зрения здоровой паранои весьма годно: угон ноды не позволит злоумышленнику получать серты на доменное имя.
matt
не понял
matt
почему? ключ то все равно на ноде остается
Sergey
ключ не от лецэнкрипта же ж
Aleksey
работает как надо, спасибо)
а что будет, когда 59+3?
matt
ххммммммм
matt
интересный вопрос
matt
доберусь до компа посмотрю
citius
всем привет. какая-то странная хрень: запускаю плейбук на неком локалхосте, и ловлю ошибку: The error was: The ipaddr filter requires python-netaddr be installed on the ansible controller при этом yum install python-netaddr - отрабатывает чуть раньше успешно. :)
matt
или PATH
citius
да вроде бы не должно. но это пакер запускает встроенным провижнером ansible-local
citius
но ща в доке гляну, они конечно могут замутить.
Sergey
...потому что не yum install python-netaddr, а pip install netaddr 😉
citius
на это я получаю sudo: /usr/bin/pip: command not found и еще немного прихуеваю )
citius
походу реально какой-то чрут
GithubReleases
https://github.com/ansible/ansible/releases/v2.4.3.0-0.1.beta1 was tagged
manefesto
Задача Надо обновить продакшен(до этого уже протестированный) я делаю так git fetch git checkout $BRANCH git pull как сделать это правильно? сейчас делаю через shell Тот же модуль git http://docs.ansible.com/ansible/latest/git_module.html требует указывать репозиторий, мне же надо обновить существующий код из гита, я даже могу не знать какой репозитоорий используется
manefesto
есть идеи ?
Tadeusz
shell же
manefesto
шел
manefesto
шел и юзаю
manefesto
- name: git fetch shell: git fetch args: chdir: /var/www/prod - name: git checkout {{site_branch}} shell: git checkout {{site_branch}} args: chdir: /var/www/prod - name: git pull shell: git pull args: chdir: /var/www/prod
manefesto
правильно ли это ?
manefesto
я думал есть кошерный вариант
Aleksey
Есть. Пакеты. Но я и сам так обновляю так что ;)
manefesto
вот йошкин кот
manefesto
есть еще изменяемые данные, типа загружаемых файлов