maniac
а на openbsd даже в новых.
Ascandar
а какой бест?
Sergey
нести ответственность за содержание файла
Sergey
зафигачить шаблон
Ascandar
да в том дело, что они разные по содержанию могут быть
Ascandar
я бы и так давно в шаьо сделал бы
Ascandar
они по содержанию разные, стопицот шаблоново городит чтоли?
Sergey
ну как.... можешь пнуть разработчиков - пусть сделают нормально
Womchik
ставлю roles_path = ..:. в ~/.ansible.cfg получаю [skip]:/Users:/Users/wom:[skip] хотя нахожусь на 4-5 уровней глубже. почему 2.4.[2|3] считает, что я нахожусь в ~ ?
Yurii
Докладчики от Майкрософт помнится утверждали что в 10ке сделали нативную поддержку линукса, докера ... Вопрос, как оно в реальности... Пробовал кто?
Докер работает но криво. При включенном докере не работает вагрант или виртуалбокс... Надо корячится приседать и пр. Лечится это все переходом на линуху либо на макось))
manefesto
всегда ли плейбук должен начинаться с hosts ?
manefesto
как мне вкорячить глобальные переменные ?
Bogdan (SirEdvin)
есть просто vars или переменные группы
manefesto
- hosts: db roles: - backup_db - hosts: master roles: - update_master - hosts: slaves roles: - update_slave
manefesto
то есть каждая роль на определенной группе серверов
manefesto
допустим ситуацию что у нас свалилась ощибка на обновлении слейва
manefesto
- hosts: db roles: - backup_db - hosts: master roles: - update_master - hosts: slaves roles: - update_slave when: '"update_slave" in roles'
manefesto
сответственно roles это массив из db,master,slave
manefesto
фишка в том что я сейчас делаю плейбук пока для awx, а потом для jenkins
manefesto
чтобы если работа его свалилась, то можно поправить свалившуюся роль. или исправить что-то на сервере и запустить только эту роль
manefesto
https://pastebin.com/HC9E7SSD
manefesto
ERROR! 'when' is not a valid attribute for a Play
Nklya
оу, пастебин еще живой
manefesto
ага
manefesto
кстати нашел вот такое решение
manefesto
https://stackoverflow.com/questions/21063159/how-to-skip-role-executing-in-ansible
manefesto
даже гугл групс живой
manefesto
хотя абсолютно убогий
manefesto
кто использовал ансибл с дженкинсом ?
Vladimir
я только планирую. из дженкинса буду поднимать/гасить анзиблом тестовое окружение.
Vladimir
но вопрос поддерживаю, на всякий случай)
manefesto
у меня идея достаточно простая, подготовка тестового окружения через ansible(накатываю из нужной ветки, союираю) потом запуск контейнера с селениумом запуск автотестов гасим селениум
manefesto
хочу облегчить работу себе и тестировщику
Vladimir
ага, у меня сценарий похожий: анзиблом развёртывается набор lxc контейнеров, накатывается софт, уже собранный в деб-пакеты, прогоняются тестовые сценарии, далее либо lxc-контейнера гасятся и удаляются, либо, если использовать снапшоты, контейнеры откатываются в исходное состояние на момент запуска (хз что быстрее будет, надо ещё будет замерять).
Vladimir
накатили, прогнали тесты, погасили
manefesto
я тебе открою тайну, даже софт ставить не надо, я запаковал rootfs в архив потом создаешь папку в /var/lib/lxc, в неё распаковываешь архив с rootfs и только правишь конфиги
manefesto
это быстрее
Vladimir
тоже вариант) но у меня ещё проверяется и раскатывание пакетов в кластере, с генерацией конфигов из темплейтов и прочего.
manefesto
знаешь, мне разворачивать дамп бд, править конфиги, собирать все через maven как то очень лень
Nklya
У вас какое-то странное соревнование как сделать решение более странным.
Aleksey
господа так вообще норм ? skipping: [node2] failed: [node2] (item=None) => { "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false }
Aleksey
ага. артефакт strategy free
Aleksey
обе записи появляются под одним загловком и выглядит просто крайне странно
Pavel
добрый день. пытаюсь настроить мониторинг свободного места через ansible. не удается указать правило "выполнять команду только если свободного места осталось меньше 7гб". пишет "(ansible_mounts.mount == \"/\"): 'list object' has no attribute 'mount'" - name: find files with size >=300M find: paths: /root size: 300M when: - ansible_mounts.mount == "/" - ansible_mounts.size_available < "7000000000"
Nklya
Ужас
Pavel
может я неправильно обращаюсь к ключам ansible_mounts ? в facts скобки так расположены "ansible_mounts": [ { ... "mount": "/", "size_available": 26531971072, .... },
Vladimir
по-моему вы пытаетесь забить гвоздь отвёрткой
Александр
Ievgen
кроме того ansible_mounts это лист а ты с ним пытаешься работать как с dict, ansible_mounts[0].mount и ansible_mounts[0].size_available при условии что желаемый mount будет первым решит вопрос, но это все равно бред
Ievgen
либо тебе надо json_query по mount/size_available и не when а with_items сразу, это более правильный бред )
kbks
Коллеги, сильно не пинайте. Я только учусь. Не могу понять где ошибка. Насколько понимаю, в модуле apt параметр "update_cache: no" должно не запускать apt-get update перед выполнением задачи. Так?
manefesto
он вроде по дефолту
kbks
По дефолту или нет, не суть. Я не могу понять, почему при указанном явно плейбук не отрабатывает c ошибкой "changed": false, "cmd": "apt-get update", "failed": true ..." Сам плейбук тестовый, и кроме одной задачи в нем ничего нет --- - hosts: all tasks: - name: install snmp become: yes become_user: root apt: name: snmp state: present update_cache: no
Pavel
по-моему вы пытаетесь забить гвоздь отвёрткой
подскажите, пожалуйста, грамотное решение для чистки дисков для инфраструктуры с сотней серверов.
Vladimir
а чистки от чего?
Bsod
от свап файлов
Ievgen
подскажите, пожалуйста, грамотное решение для чистки дисков для инфраструктуры с сотней серверов.
грамотное решение это мониторить занятое/свободное пространство для начала, а не гнать на сотню хостов плейбук, который это проверит
Ievgen
а там дальше по ситуации вплоть до крона с truncate -s0 например или find индивидуально на каждом хосте, деплоить скрипт и создавать таск в кронтабе как раз можно через ansible
Vladimir
подскажите, пожалуйста, грамотное решение для чистки дисков для инфраструктуры с сотней серверов.
система управления конфигурацией нужна для управления конфигурацией, какой смысл централизованно по расписанию с помощью нее раскидывать локальные рутинные задачи?
Vladimir
выше написали, да, по крону запускаете скрипт, в котором описаны мусорные файлы, объем их, и степень древности
Vladimir
а в плейбуках уже описываете, где должны лежать скрипты, с какой периодичностью эти скрипты дергать
Pavel
мусорные файлы, объем их, и степень древности
Vladimir
кого? )
Vladimir
скрипты и поищут, и удалят кого нужно, а кого нужно помилуют
Vladimir
у вас же есть какие-то требования формализованные к жертвам ваших репрессий?
Pavel
мне нужно найти "мусорные файлы, объем их, и степень древности"
Pavel
всё индивидуально. нужно пинать тестировщика который их оставил.
Ievgen
найти один раз, посмотреть на них, принять некоторый критерий мусорности/древности/расположения/паттерна имени итд итп и добавить в скрипт очистки
Ievgen
или повесить скрипт который будет слать мэйл персонажу со списком файлов так или иначе удовлетовряющих критерию мусорности
Ievgen
или тебе
Ievgen
)
Ievgen
или вам обоим
Pavel
имена файлов /важность/путь постоянно меняются
Ievgen
какой критерий постоянен? обьем?
Bsod
имена файлов /важность/путь постоянно меняются
берешь кочергу и исправляешь ей руки у тестировщиков
Pavel
объём непостоянен. буду собирать список файлов. и пытаться запускать задачу на серверах через ansible_mounts[0].mount. ещё не удалось как отформатировать вывод.
Ievgen
ansible_mounts[0].mount это я немного криво описал