inqfen
Ты ходишь на vcenter api
inqfen
который висит на каком-то ip/домене
Dmitry
Это если с Win10 возможно соединение с vsphere. Надо проверить..
inqfen
https://docs.ansible.com/ansible/latest/scenario_guides/guide_vmware.html а вообще не понимаю, почему все испытывают такое отвращение к докам
inqfen
где все написано
Dmitry
Да нет никакого отвращения. Я не уверен, что возможно соединение с Win10 к vsphere напрямую. Сейчас так Win10 ->RDP->WinServer->Vsphere
Anonymous
С Win10 всё ок
Timur
можно в винде поднять ssh
Не нужно. Дефолтный способ - по winrm
inqfen
Да тут по задаче и на винду ходить не надо
Timur
А как с Win10 управлять виртуалками, которые доступны только с Windows Server'а ?
Почему они доступны только с Windows Server? К vsphere с твоей машины доступа нет?
Denis 災 nobody
Timur
скорее всего напрямую нет, внутренний контур
Тогда вопрос не решаемый. Нужно поднимать vCenter Server Appliance и настраивать коннект к нему
Timur
Иначе получается полная порнография
Timur
Ну, или давать коннект непосредственно к vCenter с управляющей машины
Timur
Все это с ансиблом напрямую связи не имеет
Denis 災 nobody
ну вот можно поднять штатный ссш от десятки, пробросить порт к vcenter и решить
Denis 災 nobody
а как ещё.. я в винде не силён
inqfen
а как ещё.. я в винде не силён
при чем тут вообще тот сервер
inqfen
Решается на уровне сети все
Timur
Тут не в винде дело. Нужен доступ к API vSphere
Timur
Как к Amazon API
Timur
Чтобы амазоновскими тачками из консоли рулить через aws_cli ssh до Амазона не нужен
Denis 災 nobody
я понимаю что доступ есть только с windows server. Поэтому и проксироваться через него
Denis 災 nobody
но ойвсё
Timur
В общем, эта проблема не ансибловая вообще
Denis 災 nobody
да
John
Парни, подскажите как мне написать таск, который выполнит команду, и если получит результат «12-base pc» то пометит его как «ок», а если что-то другое, то false/warning
George
ты команду чем выполняешь?
John
raw
George
command ? shell ? тогда my_super_command | grep "12-base pc" || exit1
George
или типа того
John
хм, чо та я не подумал о простом 🙂
Aleksey
И вот так еще можно, добавив к таску: register: command_result failed_when: "'12-base-pc' not in command_result['stdout']"
Denis 災 nobody
надо бы бота запилить, собирать полезные советы..
Timur
Зачем бота?
Timur
Можно на страничке где-нибудь фиксировать
Denis 災 nobody
страничку открывать...
Denis 災 nobody
хотя форвардить боту и он будет тред как цельную мысль/совет собирать
Timur
страничку открывать...
У нас вот такое есть, например: https://lean-delivery.com/ansible-development-kit/docs/ansible_code_snippets
Timur
Можно дополнять
Denis 災 nobody
это надо руками писать
Denis 災 nobody
а так есть тот же telegra.ph
Denis 災 nobody
или кто он сейчас
Timur
это надо руками писать
Любые примеры нужно руками писать :)
Sheridan
камрады, а подскажите как должен выглядеть хандлер чтобы можно было handlers: - name: restart {{ smth }} service: name: srv-{{smth}} state: restarted tasks: - name: ... loop: - a - b notify: - restart {{ item }}
Sheridan
так можно вообще хоть как нибудь?
Timur
Из описания непонятно, чего вы хотите добиться
Sheridan
В чем конкретно суть задачи?
устанавливаю инстансы редиса. Какие именно - в плейбуке неизвестно, параметризируемый. Надо при смене конфига рестартовать устанавливаемый инстанс
Отделение Bereke Bank
делать таску по loop-у и рестартить только changed item этого лупа хандлером
Отделение Bereke Bank
ща скину как я это сделал. может поможет
Sheridan
👍
Отделение Bereke Bank
а погодь. у меня несколько сервисов сразу рестартится 😅
Отделение Bereke Bank
не помогу
Timur
устанавливаю инстансы редиса. Какие именно - в плейбуке неизвестно, параметризируемый. Надо при смене конфига рестартовать устанавливаемый инстанс
А в чем проблема? Тип таска для хендлера один и тот же ведь - рестарт сервиса? Просто имя меняется, так?
Sheridan
да, меняется имя service файла
Timur
Ну, и все. Делаете хендлер с параметром имени в виде переменной. И дергаете всегда его. А имя параметризуется вместе с вашим инстансом
Aleksandr
устанавливаю инстансы редиса. Какие именно - в плейбуке неизвестно, параметризируемый. Надо при смене конфига рестартовать устанавливаемый инстанс
я делал вложенную таску, которую дергаю по loop, а внутри - name: WHITELABELS | nginx | configure http for {{ domain }} template: src: nginx/sites-available/domain-http.conf.j2 dest: "/etc/nginx/whitelabels/{{ domain }}-http.conf" mode: 0600 owner: root group: root register: nginx_http tags: app, nginx - name: remember which servers need to restart set_fact: nginx_http_reload: "{{ nginx_http_reload | default([]) + [domain] }}" when: nginx_http.changed tags: app, nginx domain это имя итератора в loop
Алексей
всем привет. скажите, пожалуйста, как циклу можно передать численную переменную? loop: "{{ range(1, 6)|list }}" Вместо цифры 6 я хочу передавать переменную, ну то есть что-то типа: loop: "{{ range(1, {{ count }})|list }}"
Aleksandr
#странное
nginx reload дорогая оперция в highload, если у тебя вебсокеты не отпускают старые воркеры nginx. поэтому надо точно понимать, что какой-то конфиг поменялся
Sergey
nginx reload дорогая оперция в highload, если у тебя вебсокеты не отпускают старые воркеры nginx. поэтому надо точно понимать, что какой-то конфиг поменялся
Ну если ты прям чёткий - есть Nginx+, если чёткий, но расплывчатый - HAProxy. Халявный nginx - такое себе, его почти всегда обмазывать разным приходится.
Timur
nginx reload дорогая оперция в highload, если у тебя вебсокеты не отпускают старые воркеры nginx. поэтому надо точно понимать, что какой-то конфиг поменялся
Это можно прямо в хендлере параметризовать, как я выше отмечал. Если какой-то конфиг поменяется - хендлер триггернется
Aleksandr
хендлер уже поздно
Aleksandr
он в конце триггерится, а у меня после http nginx серты выписываются
Timur
он в конце триггерится, а у меня после http nginx серты выписываются
А, понятно. Ну, тогда можно через отслеживание changed, да. Только вложенный луп для этого не нужен
Алексей
Aleksey
он в конце триггерится, а у меня после http nginx серты выписываются
по идее можно в нужном месте роли вставить -meta: flush_handlers, что дернуть хэндлеры когда нужно а не в конце
Aleksey
я перед стартом сервисов так пишу, чтобы не было такого что мы сначала делаем старт nginx а затем хэндлер его еще и рестартит
Alena
Ребята, привет. Подскажите, пожалуйста, можно ли узнать о размере свободного места через сбор фактов?
Aleksey
В ansible_mounts посмотри, там есть size_available
Vladimir
Коллеги, привет! Прошу помощи. В обоих случаях подставляется первый (нулевой =\) хост из группы, а ожидаемое поведение - подставлять второй, если группа больше одного