Ждун
^\d заменить на ''
Denis
два числа получаю
Dmytro
ну склей
Ждун
Dmytro
да, и фильтр |int
Ждун
Конкатенация строк
Denis
debug: var={{item.split('.sql')[0] | regex_search('[^v;_]+\d')}}
Denis
как тут склеить?
Ждун
Че то регекс странный
Denis
debug: var={{item.split('.sql')[0] | regex_search('\d+\d+')[0][1]}}??? то ошибка же будует
Ждун
Регекс не то выбирает
Denis
да я пробовал тут и так и так
Denis
сейчас он правильный
Dmytro
фильтр инт это для преобразования в число результата конкатенейта, который будет стрингом
Ждун
Сори) тут надо регекс получить)
Denis
уже два дня бьюсь мне надо просто сравнить 3 числа (((
Denis
одно из имени файла второе и бд третие пользак promt вводит
Denis
все вводит в одном формате
Denis
v0000_0000_tt вот как из этого получить число одно чтобы потом сравнить
Denis
у кого больше
Sergey
Sergey
Башсибл?
Denis
неа уже отказал им больше части
Sergey
Судя по prompt
Denis
промот потому что люди ленивые и не ходят jenkins
Denis
и консольно ввод перемен не очень
Denis
как склеить
Denis
как склеить?
Denis
Denis
а другие люди которые условия ТЗ давали
Denis
не поулчилось их переубедить =)
Dmytro
а ты regex_search используешь?
попробуй regex_findall, получишь список из двух элементов, назовем его digits_list
потом digits_list[0]|string + digits_list[1]|string, а к результату уже фильтр int
Dmytro
может и без |string можно, но он их может просуммировать, приняв за числа
Denis
дая как раз написал regex_findall и увидел вторую половину
Dmytro
хотя стоп, если regex \d+\d+ то это сразу список из одного элемента
Dmytro
можно сразу |int
Denis
нет из вух
Denis
двух так как там символ между ними _
Dmytro
ок, тогда первый вариант должен помочь, делай конкатенейт
Denis
Dmytro
ну это даже не совсем ансибл, задача на другом уровне на самом деле, это питоновские структуры
Denis
{{ zip(['a','b','c','d','e','f']) | list }}
Denis
списко же?
Dmytro
или тебе написать готовое решение?
новичок это когда делаешь по доке и дольше, так что все получится, тебе дали нужные ответы
Dmytro
Dmytro
['a','b','c','d','e','f'] - список
zip(['a','b','c','d','e','f']) - не список
niko
>>> type(zip(['a','b','c','d','e','f']))
<type 'list'>
niko
=\
Dmytro
а какой у этого списка первый элемент?
Denis
Да это какой то ппц
Denis
не получится
Denis
не хрена
Dmytro
я просто не знаком с таким форматом
Dmytro
получится, не падай духом
Denis
да тут ппц простоя задача на ансибле чтобы ее сделать это ужее ппц какой то
Denis
всего то надо сравнить цифру
Dmytro
не флуди, мы поняли
Denis
debug: var={{ item.split('.sql')[0] | regex_replace('_','') | regex_search('\d+')}}
Denis
смешно не правда ли
Ждун
re.search().group(1) + re.search().group(2) | int ?
Александр
У меня в одном плейбуке выполняются последовательно сначала инструкции для одного хоста, потом для другого. Но косяк из-за того, что нужно передать текущее время, одинаковое для обоих хостов.
Александр
Т.к. операции долгоиграющие, то переменная datename: "{{ '%Y-%m-%d_%H-%M-%S' | strftime(ansible_date_time.epoch) }}" убегает для второго хоста
Александр
Как бы её получить только один раз?
Sergey
Александр
set_fact
Не работает, ошибка после set_fact на первом же - hosts
Sergey
Александр
Александр
Разочарование... ansible, ты меня подвёл
Sergey
Логи-то где?
Sergey
Это не лог ты прислал, это таск, причём из документации.
Александр
ERROR! 'set_fact' is not a valid attribute for a Play
The error appears to have been in 'example.yml': line 2, column 3, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
---
- set_fact:
^ here
Ждун
https://docs.ansible.com/ansible/latest/modules/set_fact_module.html
Sergey
Rodion
Александр
Александр
Иначе внутри tasks будут разные значения времени для разных хостов. А мне надо одно