
Dmitry
31.08.2017
13:19:26
но проще по-моему про https://testinfra.readthedocs.io/en/latest/ рассказать

Pavel
31.08.2017
13:21:53
не оч удобно с ssh и молекулой, если несколько хостов надо поднять, ssh будет только на последний из поднятых (перегенеривается вагрантайл), но это не беда

Константин
31.08.2017
13:22:33
в чем смысл этого testinfra если такие же тесты можно и на ансибле писать через fail when

Pavel
31.08.2017
13:23:15

Google

Pavel
31.08.2017
13:23:36
как ты ансиблом порт послушаешь?

Константин
31.08.2017
13:24:12
wait_for + shell: curl например

Алексей
31.08.2017
13:24:53
решается тем что факт декларации того что сервис поставлен не равен тому что сервис работает.
можно всё сделать ансиблом но довольно не удобно.
ну и для себя я еще нашел один аргумент. если городить проверки ансиблом получается самопроверка.
а для лично меня это синоним отсутствия проверки
всё конечно imho

Pavel
31.08.2017
13:26:34

Dmitry
31.08.2017
13:27:51
wait_for + shell: curl например
это даже хуже программирования на конфигах. это ебаное днище вообще. потом начнется "давайте скачаем curl'ом json и проверим, что можно залогиниться (читай - база не пустая, а импортнулась верно)"

Алексей
31.08.2017
13:30:42
ну и если говорить про валидаторы goss с его портом на котором он возарашает ok это вершина человеческих достижений.
даже боюсь бозон хигса по сравнению с этим просто взятая в руки палка.

Константин
31.08.2017
13:30:43
чем хуже то? а для проверки авторизации у нас смоук тесты на клиентах сделаны

Ihor
31.08.2017
13:40:31
Еще вопрос

Google

Ihor
31.08.2017
13:41:21
- name: Reload nginx
systemd: state=reload name=nginx
Говорит нет такого reload
Как сделать reload nginx,
Через shell?
nginx -s reload
Нужно reload

Алексей
31.08.2017
13:42:37
но вообще это должно быть handler

Ecklory
01.09.2017
06:52:19
Доброго времени суток.
Суть задачи:
организация доставки патчей с помощью Ansible.
Есть сервер "A", на котором в директории /home/updates/simpler будут лежать обновления (различные библеотеки и тд и тп).
Есть сервер "B", для которого нужно доставить обновления в директорию /home/servers/неизвестнЫЕ папки/simple
То есть, у нас подмножество неизвестных папок с одинаковыми файлами на сервере "B".
Нужно по совпадению (или хешам или ещё как-то) с сервера "A" заменить все однотипные файлы в /home/servers/неизвестнЫЕ папки/simple на сервере "B".
При этом нам известно: путь до неизвестных папок и пути после неизвестных папок.
Умеет ли что-то подобное Ansible?
Если да, то как подобное организовать?
Ansible "только заинсталил".

Pavel
01.09.2017
06:57:58

Ecklory
01.09.2017
06:58:31
Серверов "B" на данный момент один, но планируется достаточно большое количество.

Pavel
01.09.2017
07:00:47

Ecklory
01.09.2017
07:01:33
Внутри сети "всё можно". "A", "B", "Ansible" внутри сети.

Pavel
01.09.2017
07:03:25
не говорю, что самое классное решение, но простое и я бы так делал

Ecklory
01.09.2017
07:05:20
https://stackoverflow.com/questions/38572437/ansible-using-regular-expression-in-the-module-copy

Gleb
01.09.2017
07:10:33

Ecklory
01.09.2017
07:10:57

Anatoly
01.09.2017
07:13:52


Gleb
01.09.2017
07:14:57
Да я к тому что система вся странная плюс это не атомарно совсем как то. Может вам лучше собирать артефакт где то в архив со всем по и обновлять целиком? Т.е архив + скрипт ну и ансибл, либо пакет собрать под ос

Google

Gleb
01.09.2017
07:15:14
Пакет не принципиально собирать
Но сама идея плохая с отдельными файлами

Ecklory
01.09.2017
07:19:01
Но сама идея плохая с отдельными файлами
Накатывать полноценный патч... не имеет смысла.
Обновляться будут только несколько библиотек, которых могут быть сотни и располагаться они могут по частично известным нам путям.

Gleb
01.09.2017
07:29:44

Ecklory
01.09.2017
07:31:00
Снапшоты виртуальной машины, перед каждым апдейтом.
Апдейты запускаем вручную.

Sergey
01.09.2017
08:15:14

Maksim
01.09.2017
12:00:22
ну, как то выстранно, запускайте на виртуалке rsync и вуаля
он только обновленные файлы подтянет
делать так же через ansible
либо с сервера A гоните на все хосты
да хоть в git склдывайте
у меня такое было
это незывалось не обновлениями. а фиксами

Anatoly
01.09.2017
12:08:01
это незывалось не обновлениями. а фиксами
у него там бардак с путями, которые для него неизвестны и (как я понял) в зависимости от либы пути могут указывать в разные места., что для рсинка такая себе задача, но в целом, да.

Maksim
01.09.2017
12:08:47
пусть создает идентичную структуру каталогов

Anatoly
01.09.2017
12:10:34
так может просто либы нормально упаковать сразу? с версионированием, пост инстал скриптами ну и прочими штуками, вместо того чтобы обмазываться рсинком?

Maksim
01.09.2017
12:13:36
надо понять сначала специфику задачи, но я думаю он сам разберется

Azer
01.09.2017
12:17:27
Есть вопрос: каким образом в ansible-console можно указать vars_files?

Sergey
01.09.2017
12:49:57

Google

Anatoly
01.09.2017
12:50:32
+1
на двушечку я сегодня уже насобирал, спасибо

Sergey
01.09.2017
12:50:48
?

Alex
01.09.2017
15:22:10

Sergey
02.09.2017
22:12:15
Всем привет.
Скорее всего, я побуду капитаном Очевидность, но недавно вычитал в доках по ансиблу крутую штуку. В общем, начиная с версии 2.2, можно вызывать роли как обычные таски. При этом роль полностью загружает все свои параметры - локальные, глобальные. из окружения и пр.
Пример использования: одна из ролей вызывает часть другой (примерно как функцию!), а результат - использует. Ещё один шаг к уменьшению количества глобальных переменных. Крутотень просто!

Алексей
02.09.2017
22:14:01
интересно
продолжай

Sergey
02.09.2017
22:16:58
Вот как это выглядит с конкретными буквами:
- name: Pull другаяроль information
include_role:
name: другаяроль
tasks_from: facts.yml
vars_from: main.yml
- name: Add imported values
set_fact:
другаяроль: '{{ другаяроль | combine({ item.key: item.value }) }}'
with_dict: "{{ fact_result }}"
а тем временем в другаяроль/tasks/facts.yml:
- name: Pass this package's path to another role
set_fact:
fact_result:
deploy_path: "{{ deploy_path }}"
ver_maj_min: "{{ ver_maj_min }}"
ну и всё, теперь исходная вызывающая роль знает нужные параметры от "другаяроль".
===== 8X ======== 8X =====

Oleksandr
02.09.2017
23:02:09
@tnt4brain а если не трудно - ткни носом плиз, если завалялось хистори

Sergey
02.09.2017
23:03:29
на доку чтоль?
http://docs.ansible.com/ansible/latest/include_role_module.html

Oleksandr
02.09.2017
23:04:10
на ссыль в доке... я пытался когда то искать новые фичи по релизам... так и не в курил... приходилось заново по кругу читать маны
спасибо

Sergey
02.09.2017
23:04:23
пожалуйста

Gleb
02.09.2017
23:08:56

Sergey
02.09.2017
23:15:53
У меян таких задач не стояло, а теоретически можешь передать заранее оговорённую с собой же переменную ?

Google

SarDigital
03.09.2017
04:28:15
привет всем, тут где-то прочитал что добавили order: sorted, для сортировки хостов
пишут про версию 2.4, она вообще релизнулась?

Nklya
03.09.2017
05:17:55
Ещё нет

Dmitrii
03.09.2017
10:27:09
Астанавитесь

Алексей
03.09.2017
10:28:03
про костыли надо знать.