Timur
что бы подключаться к разным хостам под разными пользователями...
Если хосты разные - с чего вдруг группы пересекаются?
Timur
У вас явно схема данных сломана
Vitalii
У вас явно схема данных сломана
Ну почему? к примеру есть группа windows, и на ней задан пользователь. А есть группа security_servers, для нее пользователь другой. И есть хост, который включается в эти 2 группи динамик инвентори. Так вот мне нужно сделать так, если хост в группе security_servers то пользователь тот, что указан в переменных этой группы....
Jungo
подскажите глубоко уважаемые коллеги кто-нибудь сталкилвался с тем что вложенные циклы jinja генерят данные с переводом строки? --routines ${database} > /vault/backup/mysql/${database}.sql done а нужно без перевода --routines ${database} > /vault/backup/mysql/${database}.sql
Jungo
https://jinja.palletsprojects.com/en/2.11.x/templates/#whitespace-control
спасибо! добавил в закладки
Alex
а знает кто для SLES12 есть офф пакет python3-docker ?
Gleb
техническая поддержка
Gleb
ну или у админа спроси
Alex
да это все понятно
Alex
просто удивило, что для opensuse есть пакет, а для SLES нет
Alex
вот тебе и Ынтерпрайз )))
Jungo
скажите пож-та а есть ли для ансибла анализатор кода?
Sebor▂▅▇█▓▒░
Что значит анализатор? Если имеется в виду линтер, то есть ansible-lint
Lamobot
скажите пож-та а есть ли для ансибла анализатор кода?
yamllint + ansible-lint + запуск ansible-playbook вместе с ключом --syntax-check
M
Как то я закинул свой плейьук в ямлвалидатлр и его просто ращворадо на кусочки
inqfen
А то работать будет, но глаза на куски может разорвать тому, кто потом читает
M
Я всегда в ci ansible lint и yaml lint юзаю
Я в какой-то онлайн закинул, думал прокатит
M
Но сейчас они и так выглядят как будто разорвало
Jungo
Что значит анализатор? Если имеется в виду линтер, то есть ansible-lint
больше наверное анализатор криворукости моего кода
Sebor▂▅▇█▓▒░
больше наверное анализатор криворукости моего кода
Ну выше, в принципе, уже все написали Если же нужно проверять логику, то надо писать тесты
Alex
линтеры как правило находят очепятки
Alex
логику они конечно не проверят
Timur
логику они конечно не проверят
Они антипаттерны и стилевые огрехи выявить могут
Timur
Неправильные и лишние пробелы, не те кавычки, лишние фильтры, отсутствие нейминга и т.п.
Alex
и все это косметика
Alex
и как правило никак не влияет
M
Влияет
Timur
и как правило никак не влияет
Не влияет, пока ваш код используете только вы
Timur
Если же кодом начинают пользоваться, а тем более менять его несколько человек - нужен общий подход, чтобы не плодить франкенштейнов
Timur
Иначе издержки на разбирательство в чужом коде начинают зашкаливать
Alex
это да
Alex
я к тому, чтобы человек не надеялся на чудо от линтеров 😉
Timur
я к тому, чтобы человек не надеялся на чудо от линтеров 😉
Чуда нет. Просто привыкаешь писать хороший и красивый код с минимумом антипаттернов
Timur
От которого у других глаза не вытекают
Alex
насчет хороший и красивый - очень спорно
k
Коллеги, я внезапно встрял. Пишу примерно такое: my_task: >- docker run --rm --hostname {{ inventory_hostname }} -v /etc/hosts:/etc/hosts:ro -v {{ volume_name }}:{{ volume_path }} {{ my_image }} Далее таска: - name: task cron: job: "{{ my_task }}" ... Оно рендерится не в одну строчку, как я ожидаю, а с newline: #Ansible: Task 15 23 * * * user docker run --rm --hostname my.example.org -v volume:/path company/image:tag Что я ожидаю/делаю не так? Вроде же тривиальная штука и > и >- всегда работали без разрыва строк.
Gleb
примерно все
k
примерно все
По существу плиз :)
Gleb
my_task: >- user docker run --rm --hostname {{ inventory_hostname }} -v /etc/hosts:/etc/hosts:ro -v {{ volume_name }}:{{ volume_path }} вот это какое то говно
k
а что вам мешает использовать официальный модуль ?
Вы имеете в виду модуль cron? Так использую.
Dmitriy
всем привет. Есть задачка обойти кучу хостов и посмотреть, что же там за открытые порты, чисто технически думаю ансибл, хоть и не предназначем для этого, но может справится. Значит делаю простенький плейбук, вбиваю комманду shell: cmd: netstat -tlupn | grep LISTEN | grep -v 'systemd\|master\|collectd\|sshd\|rpcbind' но он выдает уж очень в нечитабельном виде. Не подскажете, как можно преобразовать вывод ?
inqfen
Не надо этой срамоты с cmd же, ну
inqfen
Фактами можно собрать
k
my_task: >- user docker run --rm --hostname {{ inventory_hostname }} -v /etc/hosts:/etc/hosts:ro -v {{ volume_name }}:{{ volume_path }} вот это какое то говно
Это составная параметризованая строка в 300+ символов, которую я разбиваю для удобочитаемости. Вот надо запихать длинную строку в крон, прямо надо.
Dmitriy
https://docs.ansible.com/ansible/latest/modules/listen_ports_facts_module.html
сейчас попробую модулем, гне знал про него, спасибо.
k
может такое стоит скриптами заменить?
Наверное, тут explicit is better than implicit
k
может такое стоит скриптами заменить?
Хотя ещё 5 строк и я забабахаю скрипт :))
Boriss
Здравствуйте, проблемка... - name: Create postgres namespace become: yes shell: kubectl create ns yoyo - пытаюсь создать нс в кубе через ансибл, получаю ***no matches for kind \"Namespace\" in version \"v1\*** ; вручную прожимаю, всё нормально
Gleb
Boriss
а он разве не только для шифта? П.с. разобрался
inqfen
Ну и был бы для шифта, назывался бы как-то типа openshift
Igor
подскажите, а какой модуль использовать для добавления статического маршрута в линкусе?
Igor
вижу такой модуль для винды, но нет для линукса...
Div
там целый зоопарк модулей
Div
ищите по вашему дистру или имени фаервола
Dmitriy
Не надо этой срамоты с cmd же, ну
да получилось, спасибо. А все же, немножечко срамоты шелла если надо (исключить из портов sshd, zabbix и прочую ненужную мне муть можно как то ? какой то аналог grep -v ?)
Dmitriy
или тут уже прийдется шеллом вывод пилить ? (не проблема, но если может ансибл, то учится надо сразу правильно)
inqfen
Там же как раз получается нормальная структура
inqfen
А не набор строк в stdout как в случае модуля шелл
Dmitriy
Зачем, можно фильтрами как надо поисключать
я не совсем понимаю как они работают, если мне нужно вывести name, например, то как правилтно это оформить ? Я думал как то вроде ansible_facts.tcp_listen.name , но нет
Dmitriy
loop-ом
может я чего не понимаю, но loop это же цикл, не ?
Anton
https://stackoverflow.com/questions/33896847/how-do-i-set-register-a-variable-to-persist-between-plays-in-ansible
еще раз побеспокою. возвращаясь к этой теме у меня даже пример этот не работает с моими хостами, ошибка VARIABLE IS NOT DEFINED!
Grek 🇺🇦
показывайте плейбук
Grek 🇺🇦
быть такого не может чтоб первая попавшаяся статья с SO не заработала)
Anton
--- - hosts: swarm_manager become: true tasks: - command: /bin/echo "this is a test" register: foo - hosts: swarm_worker become: true tasks: - debug: var=foo - debug: var=hostvars['swarm_manager']['foo']