Компания «Флант» представила (http://flant.ru/news/58) pam_docker — экспериментальный PAM-модуль, позволяющий «помещать» пользователей и группы хост-системы внутрь контейнеров Docker. Исходный код pam_docker написан на языке Си и распространяется (https://github.com/flant/pam_docker) под лицензией GNU GPLv3.
Созданный PAM-модуль призван упростить аутентификацию пользователей хост-системы внутри Docker-контейнеров и может применяться в различных системных сервисах, включая su/sudo, cron, SSH, FTP и т.п. Использовать pam_docker можно, например, для организации входа по SSH в Docker-контейнеры, используя учётную запись хост-системы, однако сами разработчики сообщают, что модуль является больше исследовательским — реализация позволяет улучшить понимание, как на практике работает Docker.
Подробнее с устройством модуля можно познакомиться посмотрев видеозапись доклада «Проникновение в Docker с примерами», представленного этим летом на встрече meetup-группы Docker Moscow в Badoo.
URL: http://flant.ru/news/58
Новость: http://www.opennet.ru/opennews/art.shtml?num=45279
> для организации входа по SSH в Docker-контейнерыКостыли-костылики
PAM-PAM-PARAM
любители goto для одной строчки...
Я вот недавно размышлял стоит ли юзать готу для одной строчки и пришел к выводу что стоит.
Пришел к выводу что стоит чтоб избежать дублирования этой самой строчки, пусть готу и занимает столько же места, но в будущем ты можешь дописать там еще пару строчек освобождения ресурсов и в итоге там где готу могло стоять забыть дописать, а так готу устраняет дублирование кода и уменьшает вероятность будущих ошибок.
Давай, переубеди меня, или готу плохо потому что готу?
Вы, главное, не борщите с этим делом. Прежде всего нам важно чтобы вы не поседели раньше времени
Если goto не превращает код в макароны, не вижу ничего предосудительного в его использовании. Ведь его не используют только из-за этого.
Ммм... Шурупов. Флант.Я так вижу, что дело не остановилось на "готовых серверных решениях на базе Ubuntu Server", теперь вы там фанатеете от контейнеризации всего и вся?
И для чего используете? Как продвигается?
Привет. Мы фанатеем от разных вещей, но как компания выбираем практичные (эффективные, надёжные) Open Source-решения для задач клиентов там, где это имеет смысл. Docker у нас активно используется для нужд DevOps (автоматизация выкатов релизов веб-приложений и всё рядом). Кто-то, возможно, удивится, но на нём в production работают серьёзные и нагруженные ресурсы.
а репозиторий образов у вас свой или официальный используете?
> а репозиторий образов у вас свой или официальный используете?Процитирую коллегу:
> Если образ opensource, то мы его храним в hub. Если этот образ связан с конкретным клиентом — храним или в приватном hub'е этого клиента, или ставим отдельный registry для этого клиента. Своего централизованного registry у нас нет, предпочитаем не плодить сущности без надобностей. Периодически посматриваем в сторону JFrog Bintray: он бы нам был очень полезен не только для Docker, но и для Vagrant-образов, и для RPM/DEB-пакетов.
>> а репозиторий образов у вас свой или официальный используете?
> Процитирую коллегу:
>> Если образ opensource, то мы его храним в hub. Если этот образ связан с конкретным клиентом — храним или в приватном hub'е этого клиента, или ставим отдельный registry для этого клиента. Своего централизованного registry у нас нет, предпочитаем не плодить сущности без надобностей. Периодически посматриваем в сторону JFrog Bintray: он бы нам был очень полезен не только для Docker, но и для Vagrant-образов, и для RPM/DEB-пакетов.Кажется, мы о разных вещах. Я сам негативно отношусь к Docker и соответственно не особо знаю экосистему (без понятия, что за JFrog). Одна из моих претензий к докеру, это невозможность (?) развернуть свой собственный репозиторий образов без использования того же докера. Т.е. вы используете "приватные" хабы в чужой инфраструктуре. По моим понятиям доверять данные клиента третьим лицам, если не смешно, то, скажем мягко, не всегда возможно.
> в чужой инфраструктуреМы ставим отдельностоящий registry (https://github.com/docker/distribution). Свой собственный репозиторий образов поднимается за 3 минуты, в самом простом виде на файловом бэкенде, а протокол взаимодействия Docker с registry полностью открытый; сам registry (который теперь называется distribution, раньше был тут: https://github.com/docker/docker-registry) — тоже открытый. «Приватные» хабы мы можем использовать у тех, кого это устраивает (нет особых требований). Такие клиенты зачастую уже живут у третьих лиц (github/bitbucket/amazon/digitalocean и т.д.), и платить 10$ за виртуалку в DO под registry или за приватный хаб — проще за хаб, чтобы просто не тратить бессмысленно время на настройку и поддержку.
> поднимается за 3 минутыну да, с использованием самого докер?:)
Deploying a registry server
docker run ...
Я говорю о том, чтобы настроить такой registry с нуля в типовом окружении с типовыми компонентами.
> сам registry (который теперь называется distributionдаже в базовых названиях еще не стабилизировался...
>а протокол взаимодействия Docker с registry полностью открытыйя вполне знаю, что это за технология и на чем она базируется. про открытость есть смысл рассказывать клиентам, а не админам.
> Процитирую коллегу:какого коллегу? кто вы и откуда вообще?
> Мы фанатеем от разных вещей, но как компания выбираем практичные (эффективные,
> надёжные) Open Source-решения для задач клиентов там, где это имеет смысл.Мы помнится так и не закончили спор про ненадёжность Ubuntu Server. :)
Ты моё мнение знаешь: я бы с Ubuntu не связывался в продакшене. Вот Debian/Devuan - другое дело.> Docker у нас активно используется для нужд DevOps (автоматизация выкатов релизов
> веб-приложений и всё рядом). Кто-то, возможно, удивится, но на нём в
> production работают серьёзные и нагруженные ресурсы.Кстати да, для выкатки веб-приложений возможно и не плохое решение.
Devuan себя ещё никак не показал.
> Devuan себя ещё никак не показал.А как он должен себя "показать"? Люди ставят на серверы, пользуют. Чего ещё надо-то?
>я бы с Ubuntu не связывался в продакшенеА у вас есть продакшн и насколько большой?
> А у вас есть продакшн и насколько большой?
> insiderПредлагаете мне побыть Вами? :D
> Ты моё мнение знаешь: я бы с Ubuntu не связывался в продакшене.Это юношеский максимализм и подмена рациональных подходов предпочтениями и убеждениями. Реально серверная убунта LTS - не найдешь 10 отличий от debian stable.
Самое приятное по сравнению с дебианом - предсказуемость циклов релиза. Крупные отличия начинаются если захочешь сделать респин по какому-то поводу и распостранять. Вот там убунта неудобна из-за условий на торговые марки, но это не про сабж.
> Вот Debian/Devuan - другое дело.
Они мало чем отличаются с точки зрения администрирования, да и часть разработчиков оба проекта разрабатывают. Devuan вообще какие-то побочные максималисты-маргиналы с непонятным результатом на выходе.
> Кстати да, для выкатки веб-приложений возможно и не плохое решение.
Так его для этого все и используют в основном.
>> Ты моё мнение знаешь: я бы с Ubuntu не связывался в продакшене.
> Реально серверная убунта LTS - не найдешь 10 отличий от debian stable.Это по-твоему аргумент *за* Ubuntu?
> Самое приятное по сравнению с дебианом - предсказуемость циклов релиза.
Отлично. И что тебе даёт предсказуемый релизный цикл для *сервера*?
> Devuan вообще какие-то побочные максималисты-маргиналы с непонятным результатом на выходе.
Почему же не понятным. Дистрибутив есть, рабочий, многие знакомые дебианщики ставят и хвалят.
>> Кстати да, для выкатки веб-приложений возможно и не плохое решение.
> Так его для этого все и используют в основном.По моему опыту чаще его скорее используют для создания сборочных окружений. Впрочем, я в среде программистов живу, так что такие наблюдения закономерны.
Пусть их Проникновение останется при них, смысл тогда в изоляции приложения, используя докер
> Пусть их Проникновение останется при них, смысл тогда в изоляции приложения, используя
> докерПосмотрел, брошурку их компании, не поверите но эти ребята обслуживают форбс. А еще у них много красивых логотипов и названий всяких Open Source проектов. Это был сарказм. Исследователи блин, ну раз этот модуль носит такой смысл не обязательно трындеть об этом 50 минут.
Ах да чуть не забыл, любой системный администратор и веб разработчик знает почти все что у них перечислено в брошурке. Блин ну удивительные люди, придумали модуль чтобы связать то что было изолировано, ну это же на медаль тянет
> Ах да чуть не забыл, любой системный администратор и веб разработчик знает
> почти все что у них перечислено в брошурке.Если вы действительно знакомы с людьми, которые _знают_ (не просто указывают в резюме длинным списком, поскольку «где-то видели» и «пару раз перезапускали») почти всё, что там перечислено, готовы обсудить их трудоустройство.
Столько пафоса, а по факту:
> на испытательный срок — от 60 000 руб.; первое время после исп. срока — от 70 000 руб.Хотя, я уже давно понял, что Docker для люмпенов.
Надеюсь, вы правильно увидели «от» в вакансии для регионов.
Правильно, ваше "от" в 2 раза ниже рыночного.И хватит уже прикрываться этими вашими регионами, тем более в контексте удаленной работы.
> Правильно, ваше "от" в 2 раза ниже рыночного.Это банальная неправда в контексте процитированной вакансии. Подтверждается реальностью, которую мы наблюдаем (в частности, на примере конкретных кандидатов). Посему продолжать этот спор здесь не буду.
Я 2ой месяц ищу себе напарника на подобную вашей вакансию, требования примерно такие же, ну может быть немного выше, "от" озвученной мне руководством вилки в 2 раза выше. Уже успел провести несколько собеседований, т.е. прекрасно знаю о чем говорю.Кандидаты, которые хотят 60-70 обычно готовы и кабель протянуть, и сайт компании сделать, что как бы намекает.
> Кандидаты, которые хотят 60-70 обычно готовы и кабель протянуть, и сайт компании сделать, что как бы намекает.Поддерживаю. В Москве 60-70 тысяч получают только мартышки, которые ничего не умеют.
Ну или начинающие специалисты, которые ещё просто не поняли реальных расценок.
Я уже не один год ищу людей, провёл десятки собеседований, набрал многих людей в штат (и хорошо знаю, что у них в этом штате получилось/получается), поэтому тоже прекрасно знаю. Уверен, что вы ищете в Москве, а разница есть, но можете мне не верить.
> хорошо знаю, что у них в этом штате получилось/получаетсяМы видим то, что у них получается: Docker, Ubuntu, это все.
Логично предположить, что показываете вы нам лучшее из имеющегося, следовательно оставшееся за кадром максимум того же уровня, скорее хуже.
> Уверен, что вы ищете в Москве, а разница есть, но можете мне не верить.Какая разница где находится работодатель/сотрудник при удаленной работе? Где-то делают большие скидки на товары/услуги для работающих в регионах?
Вас можно понять, конечно, вы и из региона, и не нужно оплачивать дополнительную аренду за место в офисе для удаленного сотрудника, а если еще и платить в черную, так вообще прекрасно - максимальная оптимизация расходов. Сложно понять человека, который будет у вас работать, тем более обладая описанными знаниями.
> это все.Вместо предположений можно сделать минимальные действия и для начала зайти хотя бы на https://github.com/flant (например, 3 год назад мы анонсировали — на опеннете в том числе — https://github.com/flant/nginx-http-rdns).
> Какая разница где находится работодатель/сотрудник при удаленной работе?
В регионах нужно меньше для комфортной жизни. Математика у вас не совсем полная, да и про «платить в черную» вы ещё зачем-то придумали очень некрасиво — получается не конструктивный диалог, а попытка быть лучше и уйти со своим. Это без меня, пожалуйста.
> Вместо предположений можно сделать минимальные действияЭто первое, что я сделал - не впечатлило. "Это все" в данном случае подразумевает "и подобное", я внес двусмысленность.
> В регионах нужно меньше для комфортной жизни.Ок, перефразирую вопрос: зачем кому-то удаленно работать на вас, а не на кого-то в той же Москве?
> Математика у вас не совсем полнаяДостаточно полная чтобы понять почему представлять себя как региональную компанию выгодно только вам.
> получается не конструктивный диалог, а попытка быть лучшеДа, вылазит наружу ваша неконкурентоспособность на рынке труда и ответить на этой вам по большому счету нечего.
> и уйти со своим.Уйти куда-то постоянно пытаетесь вы, при чем уже во второй раз.
> http://flant.ru/prices
> «Т» (техник)
> Стоимость: 1000 руб. за 1 час полезной* работы.в месяц это 160000. таким образом, компания flant имеет с человека более, чем в 2.5 раза его заработанных денег. может хотя бы до 1.5 снять - так почестнее?
> в месяц это 160000. таким образом, компания flant имеет с человека более,
> чем в 2.5 раза его заработанных денег. может хотя бы до
> 1.5 снять - так почестнее?Ты так ненавязчиво спалил почему много народа уходит во фриланс. А зачем делиться с барыгами типа этих на таких условиях? :)
так в том и дело, что барыги плачут: к ним никто не идёт. но не доходит додумать, что вместо грабежа можно сотрудничать.inb4: песни про амортизацию, офис, налоги, зверский бизнес и пушистых барыжек
> Посмотрел, брошурку их компании, не поверите но эти ребята обслуживают форбс. А
> еще у них много красивых логотипов и названий всяких Open Source
> проектов. Это был сарказм.Брошюра немного устарела (в процессе обновления) и основной фокус у нас сейчас не на всём этом многообразии логотипов, с которыми мы успели поработать и по-прежнему где-то поддерживаем, а на DevOps, где активно применяется Docker.
> Исследователи блин, ну раз этот модуль носит
> такой смысл не обязательно трындеть об этом 50 минут.Если не интересует Docker, то нет обязательного смысла в комментировании того, что не интересует. Доклад для тех, кто хотел бы узнать больше про устройство Docker, а pam_docker — практическая реализация, чтобы увидеть, как это работает. Дополнительные демонстрационные исходники к презентации можно найти здесь: https://github.com/flant/docker_penetration_experiment
>> Исследователи блин, ну раз этот модуль носит такой смысл не обязательно трындеть об этом 50 минут.Ну это-то как раз логично. Если повсюду пихаете контейнеры, рано или поздно встаёт вопрос о том, что они должны как-то взаимодействовать.
> Если не интересует Docker, то нет обязательного смысла в комментировании того, что не интересует.
Расслабься, Дим. Это анонимная новостная борда, чего ты от неё хочешь? :)
> Доклад для тех, кто хотел бы узнать больше про устройство Docker, а pam_docker — практическая реализация, чтобы увидеть, как это работает.
Ну я вот доклад прослушал от и до. Ты уж меня заранее извини, но... весьма муторно и малоинформативно. Много слов не по делу. Очень раздражает такой подход к ведению презентации. Такое чувство, что читается лекция студентам какого-нибудь МИЭМа. А суть можно было бы передать минут за 5.
Отсылка к МИЭМу, конечно, греет душу… :-) Но я не верю, что за 5 минут можно передать аналогичный уровень понимания. Не утверждаю, что это лучший доклад, но и с обратным утрированием не согласен. Однако раздражение — это дело индивидуальное.
> Брошюра немного устарела (в процессе обновления) и основной фокус у нас сейчас
> не на всём этом многообразии логотипов, с которыми мы успели поработать
> и по-прежнему где-то поддерживаем, а на DevOps, где активно применяется Docker.В наших Российских IT компаниях, основной прием это красивые логотипы из мира Open Source, и конечно же названия. Наши есть везде и многих видно по манере вести доклад. Но есть и действительно уникальные люди которые разрабатывают чудесные проекты.
> Если не интересует Docker, то нет обязательного смысла в комментировании того, что
> не интересует. Доклад для тех, кто хотел бы узнать больше про
> устройство Docker, а pam_docker — практическая реализация, чтобы увидеть, как это
> работает. Дополнительные демонстрационные исходники к презентации можно найти здесь:
> https://github.com/flant/docker_penetration_experimentПомню времена когда все так же бегали с OpenVZ, и на каждом углу доклады все круто и так далее. OpenVZ тут OpenVZ там, все тоже самое что сейчас с Docker. И хотя есть небольшие различия это все те же контейнеры, основная задача которых быть изолированными. Если есть интеграция с хост системой то это затрудняет миграцию на другие хост системы, что нарушает основную идею Docker. Одни придумали изоляцию другие теперь придумывают как ее преодалеть...
Jail ему не нравиться, неосиляторы мигрировали на другой костыль.
грамар нацы, фас
азазаза
Они даже не пробовали. "Хотя мы никогда FreeBSD не использовали не любили".А вот сломать форкфлоу doker, чтобы полюбить docker - это доставило.
- Ребят, может быть инструмент выбран неправильно, раз мы вносим такие правки?
- Не, всё нормально, коммить!
Чуть менее, чем все окружение докера сделано именно так - костыли на костылях.
> Чуть менее, чем все окружение докера сделано именно так - костыли на костылях.Докер может и костыль, но осваивается быстро, проблем создает минимум и решает конкретные практические задачи по деплою и автоматизации. А jails - формально как бы есть, но практически значимые задачи ими решать - полная порнография. По сравнению с костыльным докером. Не говоря о том что jals есть только а bsd где до сих пор не могут сделать по человечески тот же пакетный менеджер и репы. Вот их и позаменяли везде на убунты и дебианы.
> Jail ему не нравиться, неосиляторы мигрировали на другой костыль.Никто не собирается что-то там "осиливать". Берут какое-нибудь решение которое делает что надо как можно проще и быстрее. Желательно популярное, чтобы костылить поменьше. Нормальная оптимизация рабочих процессов - делать какие-то приносящие результат действия вместо того чтобы что-то "осиливать".
"Я не знаю как fork объяснить."Дальше не смог смотреть это голосование.
> "Я не знаю как fork объяснить."
> Дальше не смог смотреть это голосование.А я до 13й минуты выписывал в блокнотик, но потом тоже плюнул. :)
Кстати, правильное слово. Голосование.
доклад просто ужасный, докладчик скорее маркетолог, внятных ответов на вопросы не увидел. понял только, что он уже больше 11 лет любит контейнеры
> доклад просто ужасный, докладчик скорее маркетолог, внятных ответов на вопросы не увидел.
> понял только, что он уже больше 11 лет любит контейнерыДокладчик просто не дисциплинированный человек, да и маркетолог не очень, так как маркетологи специализируются на привлечение внимания. И умение подать большой объем информации в короткий промежуток времени. А любовь свою изучать надо, тщательнее, за 11 лет то можно было
надо было назвать "двойное проникновение" подчёркивало бы извращенский подход ;-)
Вопрос к разработчикам. Зачем вам PAM? PAM служит для аутентификации. Вы же делаете docker shell в контейнере.проще было бы заменить это все на маленький bash скрипт который пропишете как ваш login shell
#!/bin/sh
/usr/bin/docker exec -ti [container_id] /bin/shи вы и при логине и при su сразу в попадете внутрь докер контейнера.
Ну если хотите можно дополнительно свою логику накрутить и это будет куда проще и правильней чем пихать это в PAM.
Формально: такой скрипт очень ограничен в применении, а PAM — это не только для SSH (в тексте приведен пример с тем же FTP). По существу: не костыль был самоцелью, а взаимодействие с Docker на таком уровне. Костыли действительно можно сделать проще :-)
Я вас понял, спасибо за ответ.
Просто в самом докладе не хватает юзкейсов из реальной жизни, где бы можно было использовать данный модуль. Ну да наверное для хостинга, в какой то степени для тестов.
Как то подробнее расписать как вы используете данный модуль. Может быть это останется для другого доклада. Но еще раз спасибо за доклад и за отрытые сорци.
Как, мля? Уже давно есть pam_script.
> Как, мля? Уже давно есть pam_script.Слишком простое решение, надо свое, правильное. А вообще весь доклад это просто предлог для рекламы самой компании. Мы IT компания а вот наши многочасовые труды...