Anonymous
Oleg
Я не спорю с тем, что ты написал. Но скорее немного уточняю ситуацию :) У нас есть роль, которая содает виртуалхост( на самом деле не совсем, но суть примерно такая же ). Перед тем как установить виртуал хост этой роли нужно установить некоторый код. Эта операция установки когда используется в разных местах, и для нее выделена отдельная роль. Соответсвенно получается, что роль конфигурации бэкэнда зависит от роли, которая раскладывает код. Но получается так, что роль бэкэнда слегка зависит от роли установки кода. Собственно мне и хотелось понять, как эту зависимость лучше всего организовать. Но есть верочтность, что моя вот эта ар[итектура "Дичь" (c) и тогда я хочу понять, как правильно!
Что-то я много букв пишу сегондя :)
В мастере энсибла есть вложенные роли
Denis 災 nobody
Konstantin
https://github.com/ansible-semaphore/semaphore
Nick
мы семафор пробовали, но что-то не пошел - часто падал :(
остановились на rundeck - тоже со своими закидонами - но основную функцию - дать енд-юзеру возможность запускать предустановленные задачи через веб-морду - делает неплохо
Nick
"не забывай что "башня" это ещё и очередь задач и шедулер"
вот и в rundeck тоже это есть, что не может не радовать
Andrey
Denis 災 nobody
пилите опенсорс.. )
Denis 災 nobody
опять же, если это "побочный продукт" - нет смысла пытаться это продавать и закрывать
Vladimir
Всем здрасьте.
Пытаюсь вывод команд с сетевых железок записать в файл в том виде, в котором он отдаётся самим оборудованием. Но всё равно получается словарь или список.
Доки читал, гугл гуглил. Copy, lineinfile, replace, split не помогли.
Дайте кто-нибудь наводку на решение, буду премного благодарен.
Dmitry
join ? :)
Vladimir
join ? :)
Получается join соберёт в одну строку. Условно, вывод меня и так в одну строку. А должен быть построчно
Ilya
Я идиот, спасибо)
Dmitry
Dmitry
у тебя лист, список.
вывод разбился = каждая строка элемент этого списка?
Vladimir
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
а ты вар откуда задаёшь? может в кавычки надо пихнуть там, где задаёшь?
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
Alf 🙀
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
а у меня маппинг портов
Igor
9999-> 22
Igor
соответственно он пытается ломиться сразу на 22
Igor
при delegate_to: "{{ ansible_host }}"
Dima
да, rsync.