Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity
Specialization
Системный администратор, DevOps-инженер
Старший
Git
PostgreSQL
Docker
MySQL
Nginx
Высоконагруженные системы
Bash
CI/CD
Linux
Python
Сам бризер умеет только BT LE. Как я сейчас понимаю речь про вариант с базовой станцией, которая и обеспечивает этот API. С самой станцией дела не имел, поскольку решил что она замкнута на себя и свои/интегрированные датчики/устройства (типа тех е Danfoss), а потрогать ее руками возможность не было.
Мой опыт выбора рюкзака говорит о том что в любой хороший рюкзак можно положить все необходимое (при соответствии габаритов). Для меня «хороший» рюкзак это:
В комплекте с первым пунктом обычно идет надежность и защищенность: текущему рюкзаку уже лет 6 и он под дождем до сих пор не промокает (хотя уже на дне протерся до дыр).
С «уронить» чуть сложнее. Со стороны плоскостей рюкзак защищает содержимое сам по себе достаточно хорошо. Единственное что требуется — защита в нижней части. Если бы мне потребовалось, то решал бы не специальным рюкзаком для ноута", а подкладыванием блока какого-нибудь упаковочного материала на дно: тут и толщина будет достаточная и веса лишнего не даст.
У меня лампы с таким димером включаются в начале на минимальной яркости, а потом разгораются до заданной.
Да и невозможность штатного обновления выглядит странно. Для меня это звучит примерно так: «скрипты были написаны абы как, без соблюдения требований и стандартов».
И, кстати, очень хотелось бы взглянуть на пример кода, который заставлял отказываться от обновленных версий в пользу ручной модификации кода интерпритатора (для самообразования, что бы так не делать)
Если в дисках с воздухом пластины расположить очень близко друг к другу, то какие бы они ни были гладкие, между пластинами будут возникать турбулентные потоки, которые буду влиять на головку. У гелия же вязкость меньше и пластины можно расположить ближе друг к другу, без возникновения существенных турбулентных потоков, что позволяет увеличить емкость диска, при сохранении его типоразмера.
Я свои копетры посчитал: у меня получилось что камера + оборудование для передачи сигнала — почти половина итоговой стоимости коптера.
Теперь вернемся к оригинальной теме этого топика — виртуальным ресурсам в puppet.
Мой пример иллюстрирует лишь то, что использование виртуальных ресурсов избыточно (Ваша просьба примера использования одинаковых пользоватеелй в разных классах/сервисах, впрочем, тоже, поскольку вирутальные ресурсы решают имено проблему вызова одинаковых ресурсов из разных классов). Иллюстрирует он это в тех же терминах, что и автор этого поста: применительно к ресурсу user.
Но и Вашу просьбу о примере без ответа я оставить не могу (хотя он тут же будет назван «специфическим», но мы же сейчас не решаем какую-то реальную задачу, а обсуждаем общие принципы, связанные с виртуальными ресурсами).
Итак, пример.
Распределенное дисковое хранилище, dCache, для организации доступа по протоколу srm, требует установленные на зулах x509 сертификаты, которые должны принадлежать тому же пользователю, от которого dCache запусакется. Сертификаты обновляются каждый год. Тому же пользователю должны принадлежать все конфигурационыне файлы.
Итого: классу, настраивающему dCache требуется тот же пользователь, что и классу, который кладет сертификаты на сервер.
И в результате:
Более того, если мы захотим передать хэш в виде title у нас тоже ничего не получится (но, правда по другим причинам). По этому с массивами нужно быть крайне аккуратным и each внутри define вполне имеет право на жизнь.
А по существу
Тут возникнет проблема если два класса решат создать одинаковых пользователей.
Именно по этому у меня в title поставлено $name, а массив передается через параметр.
За «впервые увидевший puppet» отдельное спасибо.
А по существу: вполне бывает так что разным сервисам (в том что 1 модуль у нас настраивает один сервис разночтений же нет? Комбайны делающие все никто не пишет?) требуются одинаковые пользователи (раз уж все с пользователей началось). Значит вполне логично что каждый настраиваемый список имеет список необходимых ему пользователей, в котором пользователи могут пересекаться.
А оригинально дискуссия была о том, что виртуальные ресурсы не дают дополнительной пользы: все что они делают можно сделать и без них.
И это же ответ на ваш первый вопрос про действия при создании пользователей. И, за одно, про сравнение кода с include и виртуальными ресурсами.
Да и неправильно использовать его нельзя: при создании пользователя выполняется все, что должно выполнится при создании пользователя.
А мой пример с «1 пользователь = 1 класс» начинает прекрасно работать в тот момент, когда кроме создания пользователя нужно делать что-то еще, специфичное для пользователя. С виртуальными ресурсами, на сколько я понимаю, такой фокус не сработает.
Главная идея в том, что пользователи во всех классах должны создаваться (и определяться) одинаково. И именно это главное преимущество виртуальных ресурсов, перед конструкцией приведенной выше. В случае виртуальных ресурсов он определяется один раз и вызывается из неограниченного числа мест.
Но можно обойтись и без виртуальных ресурсов: один пользователь = 1 класс (ну или подкласс в users). И делать include каждого такого класса-пользователя. Эффект будет точно таким же.
Да, по мере роста количества материалов на сайте ситуация может существенно измениться, но резульат такого теста будет говорить о многом.
В CMS важно не то как быстро она делает SELECT count(*) FROM posts и убеждается что постов ноль, а то как она себя ведет под реальной нагрузкой.
Мне бы, например, было бы нтересно посмотреть на эволюцию времени отклика в зависимости от количества записей при обращении к случайным страницам. Увидеть «полочки», понять почему они происходят и как на «полочке» продержаться подольше.
Что бы получать актуальные IP можно воспользоваться сервисами типа DynDNS.
Это, конечно, скрывает потенциальную дыру в безопасности (через атаки на DNS), но это все же лучше чем пускать всех подряд.
А чем не устроили парольные ключи и ssh-agent?
В идеале, для доступа на клиентские серверы не должен использоваться ключ с центрального узла. Только персонифицированные ключи администраторов, защищенные паролями.
Те все должно происходить так:
Это позволяет решить проблему со взломом центарльного сервера: на нем нет никаких ключей, тем более беспарольных, а значит доступ к нему можно по ssh открыть, не боясь что при его взломе получат доступ к внутрененй инфраструктуре. + такой подход позволяет разграничивать доступ для админов: они могут иметь один аккаунт на центральном сервере, но при этом иметь доступ только на те узлы, на которые должны попадать (не говоря уже о том что можно хоть на каждый сервер уникальный ключ иметь и не как не влиять при этом на остальных администраторов)
Но мне ближе linux-way, если позволите такую формулировку: одна утилита делает одну операцию, но делает ее хорошо.
Но если мне предложат иллюзию выбора в виде двух альтернатив: ФТС у черта на рогах и почта, я подумаю, но выберу почту.
Хотя мне был бы более удобен сайт, который умеет принимать различные способы оплаты и проставляет статус посылки «оплачено», который виден на почте. Оплатил с карты дома в два часа ночи, на следующий день, как обычно, пришел и получил.