Отделение Bereke Bank
Не Бааааашсибл ни разу :-)
единственный башсибл во всей этой моей репе - 2 таски с kubectl label node. потому что мне уже было тупо лень писать uri модуль в k8s API в нужном формате) Так что не надо вот
Sergey
Отделение Bereke Bank
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
Jungo
l1njan
Lamobot
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
спасибо за намек!
Lamobot
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
Fire
Но ничто не мешает использовать 1 плейбук почит для всего, только скорость исполнения страдает.
Aleksey
Сейчас проект ещё небольшой и есть возможность его поменять, но в будущем проект сильно вырастет, реально сильно. И тогда я боюсь, что в основном плейбуке чёрт ногу сломит от количества тегов и ветвлений
Fire
Fire
Ты программируешь на ansible?)
Alex
скажите плиз, хочу поднять какую нибудь вебку чтобы дать пользователям запускать определенные плейбуки, что для этой цели можно юзать чтобы попроще? нагуглил вроде https://github.com/vstconsulting/polemarch он норм?
Igor
Fire
Aleksey
Alex
Aleksey
На проект я только пришёл и пытаюсь понять как подстелить себе соломки, чтобы потом не было мучительно больно :)
manefesto
в проекте что-то же уже есть
Aleksey
К тому же чат по ансибл, поэтому и вопросы по нему задаю :)
Sergey
^^^ +++
Aleksey
в проекте что-то же уже есть
Сейчас там один довольно развесистый плейбук, который в зависимости от тегов и т.п. вызывает разные роли. Вот я и пытаюсь понять стоит это оставить так, с учетом того, что всё это вырастет ещё раза в два-три, или поделить этот плейбук на части?
Fire
Aleksey
Fire
Там какая-то неподдерживаемая лапша вырисовывается.
manefesto
Aleksey
Так в том-то и дело, что роли есть
Fire
Aleksey
Я отлично понимаю, что всю логику из ансибл надо выносить. Аудит кода я ещё не проводил, но надеюсь до НГ успеть. Сейчас мне интересны именно концептуальные вопросы
manefesto
manefesto
ну если vcenter то openshift тебе не нужен
скорей всего тераформ и ансибл
manefesto
https://registry.terraform.io/providers/hashicorp/vsphere/latest/docs
Boriss
Lamobot
Зачем теги? У тебя роль ставит сервис, конфиги кладёт.
Aleksey
Я правильно понимаю, что ты тоже рекомендуешь разбить основной плейбук на несколько, каждый под свою задачу?
Aleksey
Пока что я смотрю на роль как на единицу, которая не принимает решений. Т.е. если надо что-то выбрать, задать какие-то переменные - это делает плейбук, который уже вызывает роль.
Aleksey
inventory и vars это переменные, с которыми я запускаю плей (константы в класическом программировании). А вот переменные, которые зависят от конкретного хоста я анализирую в плее, который в свою очередь вызывает роль
Aleksey
Вообще не пытаюсь с этим спорить. Я чуть-чуть о другом. Мне, например, чтобы при деплое сервера (да, я знаю, что это задача другого продукта, я над этим работаю, но пока что так) определить какие диски для БД использовать надо посмотреть какие диски есть, выбрать нужные (например по типичному размеру) и уже их сохранить в переменной, с этой переменной будет работать роль. Т.е. в плее я определяю runtime переменные, которые зависят от каждого конкретного хоста
Aleksey
Да, я понимаю. Надеюсь, у меня получится донести это до руководства.
Aleksey
Мысль правильная, но опыт пока накапливаю и нарабатываю =) Поэтому и задал вопрос тут
Aleksey
Это про деплой софта, т.е. для CI/CD. А я про деплой инфры говорил (БД, web-сервер, например). Немного не то. Но за модуль спасибо - хоть знать буду =)
Sergey
Up
Следующий "Up" = RO на сутки за спам. Если тебе не ответили - значит, не ответили. Во-первых, не обязаны. Во-вторых, возможно, вопрос не интересен никому из присутствующих, либо непонятен, либо похож на желание сделать свою работу чужими руками. В общем, отсутствие ответа - это повод для подумать в ключе "а что не так с моим вопросом?", а не для "Up" ;-)
Fire
Fire
А вдруг не стоит?
Fire
ansible -m service -a "name=bla status=stoped"