Отделение Bereke Bank
Не Бааааашсибл ни разу :-)
единственный башсибл во всей этой моей репе - 2 таски с kubectl label node. потому что мне уже было тупо лень писать uri модуль в k8s API в нужном формате) Так что не надо вот
Sergey
да где? все на модулях и все идемпотентно
Хм, а и вправду. Ок, я ошибся и исправил: https://t.me/pro_ansible/168440
citius
а можешь подсказать, какие готовые решения?)
Hashicorp Vault удобный и достаточно простой EJBCA
Sergey
не поняль) нету там табов
Эм, я не про твою репу же, а вообще - как олицетворение идеи о чуть-чуть недотянутом совершенстве.
Отделение Bereke Bank
Эм, я не про твою репу же, а вообще - как олицетворение идеи о чуть-чуть недотянутом совершенстве.
ааа) ну снова начну работать с кубернетесом - может дойдут руки поправить эти две таски
Sergey
👍👍👍
Lex
коллеги, здрасьте! rsync -av --include-from=dir1_list --include-from=dir2_list --exclude=\* dir1/ dir2/ dir3_dst как это переложить на synchronize )) знает кто-нибудь? цель - по 2м спискам, из 2х папок - залить файлы в 3ью
Jungo
сталкивался ли кто с тем что with_nested не находит поле в списке словаре? https://pastebin.com/VeXHJF1Z ошибку выдает msg: 'AnsibleUndefinedVariable: ''list object'' has no attribute ''type''' хотя в словаре есть type и почему-то в выводе ошибки список отсортирован уже может быть я не так обращаюсь к элементу? есть идеи? со вчера копаюсь
Lex
2 таски не интересно. Если бы я хотел 2 - сделал бы 2. Речь про одну...
Lex
убрать в переменных и подставить в таске?
Lex
да ну нет. интересна 1 таска с одним рсинком...
Lex
2 есть ))
Lamobot
replace/regex_replace
Lex
зачем вырезать то? в переменную кладешь item.conf в таске делаешь src "{{ item }}.j2" dest: "{{ item }}"
Lamobot
Можно просто в src подставлять .j2
Sergey
нет идей? msg: 'AnsibleUndefinedVariable: ''list object'' has no attribute ''type'''
Есть идея. Неудачная структура данных, смесь бульдога с носорогом (списокв и словарей). list object - значит, где-то ты к списку обращаешься, а думаешь, будто к словарю.
kbks
приветы. господа, а может подскажете что я делаю не так с contains? - name: "get current jobs" uri: url: http://localhost:4646/v1/jobs register: nomad_output - name: "Display running gpas jobs" vars: query: "[?Type == 'service' && Status == 'running'].Name[?contains(@, 'core')]" debug: msg: "{{ nomad_output.json | json_query(query) | list }}" в результате FAILED! => {"failed": true, "msg": "the field 'args' has an invalid value ([]), and could not be converted to an dict. Error was: In function contains(), invalid type for value: cpppgstress1-alerta-services, expected one of: ['array', 'string'], received: \"unknown\"\n\nThe error appears to have been in '/Users/vasylo/repos/infra_gil/roles/gpas_nomad/tasks/nomad_job.yml': line 14, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: \"Display running gpas jobs\"\n ^ here\n”} ансибл 2.3 (пока нельзя обновить)
kbks
сам спросил - сам отвечу получилось с to_string(@) query: "[?Type == 'service' && Status == 'running' && contains(to_string(@), 'core’)].Name”
Jungo
item[0]['type']
спасибо! правда теперь ошибка с кавычками - пробую разные варанты получается я обращался к словарю как к списку
Jungo
item[0]['type']
не вышло https://pastebin.com/gNyLSskS буду копаться тогда дальше - кавычки вроде бы есть везде
Jungo
спасибо за намек!
Jungo
Проблема отступов
спасибо! отработал тест на примере из https://chromatichq.com/blog/untangling-ansible-loops - тут все ок но у меня все равно ошибка - даже если я убрал type он все равно упорно на него ссылается) сейчас попробую почикать список - уберу все лишнее
Jungo
Проблема отступов
причем я уже grep сделал по type а он все равно пишет msg: 'AnsibleUndefinedVariable: ''list object'' has no attribute ''type''' ))))
Jungo
как будто cache есть
Jungo
Проблема отступов
разобрался! в теле шаблона были указания на старое поле! спасибо!
Jungo
работает кстати и так item.0.type и так item[0]['type']
Aleksey
Привет. Вопрос скорее концептуальный. Как правильно организовать проект ansible? Один плейбук из которого вызываются разные роли на разные задачи или лучше сделать на каждую задачу свой плейбук?
Fire
Но ничто не мешает использовать 1 плейбук почит для всего, только скорость исполнения страдает.
Aleksey
Сейчас проект ещё небольшой и есть возможность его поменять, но в будущем проект сильно вырастет, реально сильно. И тогда я боюсь, что в основном плейбуке чёрт ногу сломит от количества тегов и ветвлений
Fire
Ты программируешь на ansible?)
Alex
скажите плиз, хочу поднять какую нибудь вебку чтобы дать пользователям запускать определенные плейбуки, что для этой цели можно юзать чтобы попроще? нагуглил вроде https://github.com/vstconsulting/polemarch он норм?
Aleksey
Ты программируешь на ansible?)
Пока что нет :) но я пытаюсь спрогнозировать развитие проекта
Fire
Пока что нет :) но я пытаюсь спрогнозировать развитие проекта
Делай плейбуки максимально простыми и прямолинейными.
Aleksey
Зачем тебе в плейбуке теги и ветвления?
Мы пытаемся на awx своё маленькое «типа облако» нарисовать :)
Alex
tower/awx
спс гляну
Aleksey
Мы пытаемся на awx своё маленькое «типа облако» нарисовать :)
На самом деле там не только awx, но он является основным движком автоматизации
Ilia
Мы пытаемся на awx своё маленькое «типа облако» нарисовать :)
Гг, то лдап придумывают, то опенстек. Воспользуйтесь профильным инструментом.
manefesto
Делай плейбуки максимально простыми и прямолинейными.
точнее плейбуки дробить на повторяющиеся роли например * common * iptables
Aleksey
На проект я только пришёл и пытаюсь понять как подстелить себе соломки, чтобы потом не было мучительно больно :)
manefesto
в проекте что-то же уже есть
Aleksey
Гг, то лдап придумывают, то опенстек. Воспользуйтесь профильным инструментом.
Спасибо, я посмотрю на opennstack. Но пока изучаю вопрос надо как-то двигать уже существующее и понять куда. Вот поэтому я и хочу понять как навести порядок в том, что есть. Или его можно пока что не шевелить - пусть растёт как растёт.
Aleksey
К тому же чат по ансибл, поэтому и вопросы по нему задаю :)
Fire
К тому же чат по ансибл, поэтому и вопросы по нему задаю :)
Мы тут ещё советуем посмотреть подходящие интсрументы под задачи, а не кодить на ансайбле),
Sergey
^^^ +++
Aleksey
в проекте что-то же уже есть
Сейчас там один довольно развесистый плейбук, который в зависимости от тегов и т.п. вызывает разные роли. Вот я и пытаюсь понять стоит это оставить так, с учетом того, что всё это вырастет ещё раза в два-три, или поделить этот плейбук на части?
Aleksey
Мы тут ещё советуем посмотреть подходящие интсрументы под задачи, а не кодить на ансайбле),
Спасибо за совет. Я уже смотрю в сторону оптимизации. Пока что терраформ рассматриваю
Fire
Там какая-то неподдерживаемая лапша вырисовывается.
Aleksey
Так в том-то и дело, что роли есть
Fire
Спасибо за совет. Я уже смотрю в сторону оптимизации. Пока что терраформ рассматриваю
А.... у вас там на ансайбле захардкожен оркестратор для виртуалок?)
Aleksey
А.... у вас там на ансайбле захардкожен оркестратор для виртуалок?)
Нет, ансибл только автоматизация. Оркестратор отдельно делает другая команда. Точнее, там портал для управления облаком. И что-то мне подсказывает, что между ними ещё должно быть что-то типа openstack или terraform.
Aleksey
Я отлично понимаю, что всю логику из ансибл надо выносить. Аудит кода я ещё не проводил, но надеюсь до НГ успеть. Сейчас мне интересны именно концептуальные вопросы
Aleksey
сейчас то на чем всё крутится ?
Сейчас там зайчатки этого самого облака. Vcenter, самописный портал и несколько плейбуков вызываемых из awx
manefesto
ну если vcenter то openshift тебе не нужен скорей всего тераформ и ансибл
manefesto
https://registry.terraform.io/providers/hashicorp/vsphere/latest/docs
Lamobot
Зачем теги? У тебя роль ставит сервис, конфиги кладёт.
Aleksey
Я правильно понимаю, что ты тоже рекомендуешь разбить основной плейбук на несколько, каждый под свою задачу?
Aleksey
Пока что я смотрю на роль как на единицу, которая не принимает решений. Т.е. если надо что-то выбрать, задать какие-то переменные - это делает плейбук, который уже вызывает роль.
Aleksey
inventory и vars это переменные, с которыми я запускаю плей (константы в класическом программировании). А вот переменные, которые зависят от конкретного хоста я анализирую в плее, который в свою очередь вызывает роль
Aleksey
Вообще не пытаюсь с этим спорить. Я чуть-чуть о другом. Мне, например, чтобы при деплое сервера (да, я знаю, что это задача другого продукта, я над этим работаю, но пока что так) определить какие диски для БД использовать надо посмотреть какие диски есть, выбрать нужные (например по типичному размеру) и уже их сохранить в переменной, с этой переменной будет работать роль. Т.е. в плее я определяю runtime переменные, которые зависят от каждого конкретного хоста
Aleksey
Да, я понимаю. Надеюсь, у меня получится донести это до руководства.
Aleksey
Мысль правильная, но опыт пока накапливаю и нарабатываю =) Поэтому и задал вопрос тут
Aleksey
Это про деплой софта, т.е. для CI/CD. А я про деплой инфры говорил (БД, web-сервер, например). Немного не то. Но за модуль спасибо - хоть знать буду =)
Sergey
Up
Следующий "Up" = RO на сутки за спам. Если тебе не ответили - значит, не ответили. Во-первых, не обязаны. Во-вторых, возможно, вопрос не интересен никому из присутствующих, либо непонятен, либо похож на желание сделать свою работу чужими руками. В общем, отсутствие ответа - это повод для подумать в ключе "а что не так с моим вопросом?", а не для "Up" ;-)
Fire
А вдруг не стоит?
Fire
ansible -m service -a "name=bla status=stoped"