Roman
meta же не Best Practices, неудобно прыгать между ролями зависимости смортеть
Aleksey
тогда фактом придется отрезать лишнее
Aleksey
Aleksey
Aleksey
а где в ансибле програмирование ?
Sergey
возьму на заметку
Roman
пишешь роль, добавляешь при необходимости в нужный плейбук, вот и весь реюз кода
Aleksey
Sergey
Sergey
это конфигурирование системы конфигурирования 😊))))
Aleksey
и да. ансибл всё ещё норм.
Evgeny
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
генерю ключ, запрос и подписываю прям из плэйбука, и норм
matt
не понял
matt
почему? ключ то все равно на ноде остается
Sergey
ключ не от лецэнкрипта же ж
Aleksey
matt
ххммммммм
matt
интересный вопрос
matt
доберусь до компа посмотрю
citius
всем привет.
какая-то странная хрень: запускаю плейбук на неком локалхосте, и ловлю ошибку:
The error was: The ipaddr filter requires python-netaddr be installed on the ansible controller
при этом yum install python-netaddr - отрабатывает чуть раньше успешно. :)
Sergey
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
manefesto
есть еще изменяемые данные, типа загружаемых файлов