Anton
В мастере энсибла есть вложенные роли
Это не тоже самое, что dependency в мета?
Denis 災 nobody
Подошло бы купить Tower, но нельзя, можно только опенсорц фриваре
нанять программеров, запилить, выложить в опенсорс фриваре.
Konstantin
https://github.com/ansible-semaphore/semaphore
Nick
мы семафор пробовали, но что-то не пошел - часто падал :( остановились на rundeck - тоже со своими закидонами - но основную функцию - дать енд-юзеру возможность запускать предустановленные задачи через веб-морду - делает неплохо
Nick
"не забывай что "башня" это ещё и очередь задач и шедулер" вот и в rundeck тоже это есть, что не может не радовать
Andrey
https://github.com/ansible-semaphore/semaphore
там кстати какое-то шевеление пошло вроде
Oleg
нанять программеров, запилить, выложить в опенсорс фриваре.
так походу и придется пилить. Только в таком раскладе это будет нифига не опенсорц и не фриваре.
Denis 災 nobody
пилите опенсорс.. )
Denis 災 nobody
опять же, если это "побочный продукт" - нет смысла пытаться это продавать и закрывать
Vladimir
Всем здрасьте. Пытаюсь вывод команд с сетевых железок записать в файл в том виде, в котором он отдаётся самим оборудованием. Но всё равно получается словарь или список. Доки читал, гугл гуглил. Copy, lineinfile, replace, split не помогли. Дайте кто-нибудь наводку на решение, буду премного благодарен.
Dmitry
join ? :)
Vladimir
join ? :)
Сейчас посмотрю, спасибо
Vladimir
join ? :)
Получается join соберёт в одну строку. Условно, вывод меня и так в одну строку. А должен быть построчно
Ilya
Я идиот, спасибо)
Dmitry
у тебя лист, список. вывод разбился = каждая строка элемент этого списка?
Dmitry
да, именно так
иии? что мешает сджойнить через перевод строки, м?
Dmitry
'\n'.join(stupid_list)
Vladimir
Вероятно, ничего. ) Спасибо
Dmitry
вот! :)
Max
Итак, господа
Max
есть вот такая загвоздка
Max
docker_container: command: --yoba {{ var }}
Max
если var = a,b,c он считает её как три аргумента игнорируя запятые
Anonymous
'{{ var }}'?
Max
неа
Anonymous
я наугад тыкаю тащемта
Lev
а все в ковычки обернуть?
Max
да не помогает
Max
он видит запятые и парсит их как разные аргументы хоть ты тресни
Max
docker inspect
Max
args { a, b, c }
Lev
а если там, как в кубернетесе? каждый аргумент через -
Anonymous
а ты вар откуда задаёшь? может в кавычки надо пихнуть там, где задаёшь?
Max
а если там, как в кубернетесе? каждый аргумент через -
вот фикус в том что аргумент должен схавать список через запятую
Ilya
Есть скрипт который задает переменные, вызываю его при помощи shell: source setenv.sh args: executable: /bin/bash Сам скрипт for path in ${PATH_LIST}; do export PYTHONPATH=${PYTHONPATH}:$(readlink -f ${path}); done
Ilya
Эти переменные используются в софте написанном на питоне /opt/project/py35/bin/python /opt/project/blaba/gw_ms/manage.py
Ilya
Но он их не видит
Ilya
Все происходит в одном плейбуке
Ilya
Это нормально?
maniac
сделай еще один shell сразу после, и посмотри там PYTHONPATH
Ilya
вам бы вот для такого virtualenv подошел, например
У меня сразу ниже идет pip: { requirements: "{{ project_env }}/requirements.txt", virtualenv: /opt/ghostwar/py35, virtualenv_site_packages: yes}
Dmitry
хрень какую-то городят. судя по всему django. зачем править PYTHONPATH вообще?
Dmitry
что там за проект, которому (для импортов?) нужна такая помойка каталогов?
Ilya
Сервер мобильной игры)
Ilya
Ладно как лучше задать сами переменные?
Ilya
environment ?
Dmitry
сделать проект нормально, чтобы эти приседания стоя в гамаке были не нужны. но боюсь, этот вариант джангоёбам не понравится, они всегда бугуртят от такого :)
maniac
т.е. да, это нормально
Dmitry
но вообще мне кажется (но я не уверен, просто не попробовал, сейчас некогда), что ты пропустил кое-что в доке (всего ансибла, а не модуля pip) Ansible makes it easy for you to configure your environment by using the ‘environment’ keyword.
Dmitry
- pip: requirements= "{{ project_env }}/requirements.txt" virtualenv=/opt/ghostwar/py35 virtualenv_site_packages=yes environment: PATH: блаблабла:{{ ansible_env.PATH }}
Dmitry
примерно так
Dmitry
http://docs.ansible.com/ansible/playbooks_environment.html
Dmitry
но должно работать, я погуглил - вот товарищи почти то же самое пишут, что я в голове придумал https://serverfault.com/questions/577188/how-can-i-prepend-to-path-while-running-ansibles-pip-module
Dmytriy
Подскажите как можно в нутри плейбка определять переменную в зависимостри от того на какой ansible_fqdn деплоиться.
Dmytriy
нешел вот это не внутри плейбука оно не завелось http://stackoverflow.com/questions/31310688/conditionally-define-variable-in-ansible
Dmitry
сунь в hostvars :D
Igor
Коллеги, каким модулем можно рекурсивно копировать директории на целевой тачке локально?)
Igor
не command\
Dima
хаха
Dima
отличный вопрос
kiosaku
synchronize
Dima
synchronize + delegate_to 😄
Dima
я уже как-то убил день на поиск решения
Dima
- name: copy folder inside one server synchronize: src='/directory/from' dest='/directory/to/' delegate_to: "{{ ansible_host }}" типа такого
Igor
ппц
Igor
нельзя было сделать src_remote штоле(обращаясь к авторам synchronize)
Igor
а copy умеет src_remote, но не умеет рекурсивно копировать
Dima
ага. по одному файлику :)
Dima
у меня в итоге немного не так получилось: - name: task name synchronize: src={{ item.src }} dest={{ item.dest }} delegate_to: "{{ ansible_host }}" with_items: - { src: '/foler/from/1/', dest: '/folder/to/1/' } (итд)
Igor
а у меня маппинг портов
Igor
9999-> 22
Igor
соответственно он пытается ломиться сразу на 22
Igor
при delegate_to: "{{ ansible_host }}"
Dima
да, rsync.