George
Чо?
George
Галактикой лучше, напрямую из репы
Nikita
Делаешь степ в ci, который тебе скачивает роли, например из файла requirements
checkdiff
- name: library
src: git@<uri>:repo.git
scm: git
version: v1.1.2
checkdiff
я так понял, что формат не совсем понятен requirements, приложил выше
Nikita
А CI какой? gitlab?
George
В пайплайне ты как ансибл дергаешь?
George
Предыдущим шагом сделай ansible-galaxy install -r имя_файла_с_зависимостями
Ес-но ссш ключи должны быть подкинуты или качай репы по токену
George
Ну, или как оно там делается
George
Я уже забыл больше, чем кто-то мог узнать за карьеру )
Nikita
before_script:
- ansible-galaxy install -r roles/requirements.yml
George
Nikita
Да можно как угодно:) Просто пример попросили
George
А почему нет-то
George
Ну, ок
George
Ну, это логично. pip так же делает ) и голанг тоже так умеет ) и много кто еще
George
И субмодули не нужны
Anton
Коллеги, а никто не разбирался с тем как можно отследить на каком хосте ансибл застрял при коннекте по Winrm?
Sergey
Anton
Видеть какой хост сейчас тормозит всю очередь исполнения
Anton
ну это смотря сколько хостов.. :( Я так понимаю никто больше десятка хостов особо не гоняет?
Sergey
George
Aleksandr
Господа, я правильно понимаю что нативной поддержки разархивирования .gz в модуле unarchive нет? кроме как используя shell других спосоов нет?
George
George
Распаковать архив? Или распаковать, если? Или просто надо файлы посихронизировать ?
Aleksandr
скачать и распаковать
Aleksandr
https://github.com/vmware/govmomi/releases/download/v0.20.0/govc_linux_amd64.gz
Timur
Anonymous
Requires gtar/unzip command on target host.
Anonymous
может нету gtar/unzip
Aleksandr
unzip есть
Aleksandr
{"changed": false, "msg": "Failed to find handler for \"/home/ubuntu/.ansible/tmp/ansible-tmp-1567528626.494742-15416206355682/govc_linux_amd64dKSVs2.gz\". Make sure the required command to extract the file is installed. Command \"/bin/tar\" could not handle archive. Command \"/usr/bin/unzip\" could not handle archive."}
Aleksandr
gunzip там есть
Anonymous
странно
Anonymous
можно узнать версию ansible?
Отделение Bereke Bank
Оно gzip-ом распаковывается
Aleksandr
ansible --version
ansible 2.8.4
config file = /Users//.ansible.cfg
configured module search path = ['/Users//.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.7/site-packages/ansible
executable location = /usr/local/bin/ansible
python version = 3.7.4 (default, Jul 9 2019, 18:13:23) [Clang 10.0.1 (clang-1001.0.46.4)]
Отделение Bereke Bank
там же один файл всего в архиве - закинь в files роли и заливай через copy)
Aleksandr
в чем профит хранения thirdparty бинарей в своем коде?
Dok
в том, что твои плейбуки не будут зависеть от внезапных апдейтов на стороннем сайте
Aleksandr
Kane
так если ты бинарь хранишь у себя в репе, может просто перепаковать тогда с использованием tar'а?
Kane
тогда можно unarchive заюзать , без колхоза с shell/command ))
Anonymous
tar.gz умеет, а просто .gz не умеет :) как то странно
Kane
согласен что выглядит так себе)) но наверняка где-то в недрах англоязычных тредов в ансибловой гуглогруппе этому есть разумное объяснение ))
Dok
Kane
Тогда можно и просто copy)
тоже верно, но наверно зависит от размера и количества файлов... таскать много много мелких файлов по сетке наверно не очень хорошо
Dok
На это есть synchronize
Kane
A wrapper around rsync — мм, это хорошо
Dok
ой, на это есть with_filetree
Kane
😂
Dok
rsync, это когда тебе надо ещё и права сдублировать и прочее, для всего остального есть with_filetree
Timur
Kane
Dok
John
Парни, подскажите где почитать как ансиблом генерировать инвентарник из прометеуса?
Sergey
Sergey
запрос сформируй подробнее
что значит генерировать
на основе чего
может тебя вообще жинжа устроит
UglyKoyote
А что запрос через апи к прому? "GET /api/v1/targets" , "GET /api/v1/targets/metadata". На выходе "обычный" жсон, дальше уже делай что хочешь
Sergey
а, я кажись понял что ты хочешь
ты не хочешь формировать конфиг прома, а хочешь из прома формировать инвентори ансибла(наоборот О _о)
Sergey
просто обычно делается наоброт
ты хочешь формировать конфиг прома на основании
file discovery
consul discovery
dns discovery
etc.
Sergey
а какая цель вообще? почему такой способ? может есть лучше варианты
UglyKoyote
а как хосты про пром узнают?
Sergey
пром работает по пулл принципу, хосты просто пушат метрики в локальный порт а он скрапит с них данные
Sergey
то есть зависимость не от хостов а от конфига прометея
Sergey
node-exporter пушит в 0.0.0.0:9100
UglyKoyote
дык я про апи уже написал
Sergey
он не должен ничего из прома получать я тебе говорил
Sergey
IaC это ансибл а не пром
Sergey
ладушки, вобщем я понял что ты хочешь но думаю ты все делаешь наоборот
Это не ансибл на основе конига прома должен строиться, а пром конфиг на основе инвентори ансибла
Или если тачки виндовые и они в домене, можно собирать dns discovery и на основе этой инфе собирать конфиг прометея
думаю сначала тебе надо понять какая вообще архитектура мониторинга и куда пушат(ли) хосты метрики, а дальше уже думать как надо все формировать
Sergey
¯\_(ツ)_/¯
George