Страницы

четверг, 28 апреля 2022 г.

Создание модулей скриптов в Windows PowerShell 5

Вот и пришло время для очередного веб-каста на тему модулей в Windows PowerShell 5.

В веб-касте представлено описание основных типов модулей и демонстрируется создание и использование модулей скриптов (Script Module), также известных как модули сценариев.

Подробности и видео: LebedevUM

P.S. Это уже третий веб-каст в группе, поэтому, если вы не знакомы с модулями Windows PowerShell, рекомендую перед просмотром ознакомиться с предыдущими:

Все веб-касты в хронологическом порядке: Windows PowerShell 5

А в следующем веб-касте мы продолжим разбирать тему модулей скриптов и разберём вопрос видимости членов модуля.

среда, 27 апреля 2022 г.

Доступна бета-версия Fedora 36


Команда проекта Fedora анонсировала доступность бета-версии Fedora Linux 36. Данный релиз продолжает усилия команды разработки по доставке передовых технологий с открытым исходным кодом и включает в себя обновления GNOME, улучшения Wayland для пользователей Nvidia и многое другое.


Улучшения для рабочих станций.

Возможности настольных версий Fedora становятся лучше с каждым релизом. Бета-версия Fedora 36 Workstation включает в себя GNOME 42 – новейший релиз окружения рабочего стола GNOME.

Пользователи, предпочитающие темный режим интерфейса (Dark Mode) будут рады увидеть такую опцию в GNOME 42. Также в окружение рабочего стола добавлена обновленная тема GNOME Shell, которая использует меньше пространства, улучшает контрастность и прочее, что позволяет сделать пользовательские возможности чуточку приятнее.

Данный релиз также включает в себя новое приложение терминала (Console) и новый текстовый редактор – Text Editor. При выборе схемы именования предпочтение было отдано понятности в ущерб оригинальности. Реальная привлекательность Text Editor заключается в улучшенном пользовательском интерфейсе и возможностях, таких как авто-сохранение, чего не было в предыдущем редакторе по умолчанию.

Для пользователей, которым необходимо делать снимки экрана, должны понравиться новые возможности. Нажатие клавиши [Print Screen] теперь запускает интерактивный инструмент, который позволяет сделать моментальный снимок или запись, как всего экрана, так и отдельной части.


Упрощённое создание моментальных снимков.

Стоит отметить, что все заметные пользователю изменения возможны только за счёт той работы, которая происходит под капотом Fedora. В частности, некоторая работа была проведена в настольных вариантах Fedora Linux 36 по перемещению базы данных RPM из /var и размещению /var на отдельном под-томе (Subvolume), что в конечном счёте упрощает управление моментальными снимками.

Примечание.

Моментальные снимки на файловой системе – это одна из возможностей файловой системы BtrFS, об использовании которой в Fedora Linux я писал в статьях: «Доступна бета-версия Fedora 34» и «Доступна бета-версия Fedora 35».

Перемещение базы данных RPM из /var упрощает работу с различными типами моментальных снимков и операций отката. Результат проделанной работы уже применяется для вариантов Fedora c rpm-ostree, в частности Silverblue, Kinoire, CoreOS и IoT, которые уже используют моментальные снимки и откаты. А также, эта работа закладывает основу для стандартных релизов Fedora чтобы они также могли использовать эти возможности.

Пользователи могут не видеть преимуществ прямо сейчас, но эта работа и ее результаты станут заметны позже, как в самом исходном проекте Fedora, так и, возможно, в Red Hat Enterprise Linux (RHEL).


Прочие улучшения в бета-версии Fedora Linux 36.

Так как пользователям Fedora Linux нравятся возможности выбора, доступные в настольных окружениях, теперь в Fedora стал доступен релиз LXQt 1.0. Можно использовать опцию выбора LXQt или просто установить LXQt в существующем окружении рабочего стола.

Пользователи Nvidia увидят дополнительную поддержку Wayland. В бета-версии Fedora 36 с сессиями GDM, теперь по умолчанию используя Wayland.

И, разумеется, новейший релиз полон обновлений для языков программирования, библиотек и утилит, таких как Ruby on Rails 7.0, Django 4.0, PHP 8.1, PostgreSQL 14 и массы прочих. Также, в бета версии Fedora 36 впервые представлен Podman 4.0.


Помощь в тестировании.

Так как это выпуск бета версии, команда проекта ожидает обратной связи обо всех найденных ошибках или недостающих компонентах. Для передачи информации о найденных ошибках в процессе тестирования, свяжитесь с командой тестирования Fedora QA через почтовый список или канал #fedora-qa на Libera.chat. Процесс тестирования и известные ошибки можно отслеживать на странице Common F36 Bugs.

Подробное описание процедуры сообщения об ошибках доступно в Fedora Docs.


Что такое бета-версия.

Выпуск бета-версии – это законченный код, который имеет сильное сходство с финальным релизом. В этом достаточно просто убедится, скачав и попробовав бета-версию.

Каждая найденная ошибка, переданная команде Fedora QA, позволит сделать грядущий релиз лучше. В сообществе Fedora существует культура координации новых возможностей и устранения максимального количества найденных неисправностей, насколько это возможно. Обратная связь позволяет улучшить не только Fedora Linux, но и всю экосистему свободного программного обеспечения.


Дополнительная информация.

Больше информации об изменениях в бета-версии Fedora Linux 36 можно найти по ссылке: «Fedora Linux 36 Change set». Там же присутствует больше технической информации о новых пакетах и улучшениях данного релиза.

понедельник, 25 апреля 2022 г.

Вывод из эксплуатации устаревших компонентов Citrix Gateway

Компания Citrix вместе с релизом Citrix ADC 12.0 (сборка 41.16) анонсировала устаревшие компоненты (Deprecated). Эти компоненты, такие как классические политики (Classic Policy), некоторые темы оформления и классический анализ конечного устройства (EPA) по прежнем поддерживаются в релизах 12.1 и 13.0.

Для подготовки окружений к переходу на релиз 13.1, рекомендуется спланировать отказ от устаревших компонентов и заменить их на поддерживаемые возможности. Некоторые аспекты перехода могут показаться достаточно простыми, с другой стороны, такие задачи, как перемещение аутентификации на виртуальный сервер nFactor, могут потребовать значительных усилий в настройке.


Классические политики (Classic Policies).

Политики Citrix ADC используются для управления проверкой данных компонентами. Классические политики оценивают базовые характеристики трафика, в то время как инфраструктура продвинутых политик (Advanced Policy) позволяет анализировать больше данных и настраивать больше операций в правилах. Об отказе от классических политик впервые было объявлено несколько лет назад, я даже писал об этом в статье «Перевод механизма обработки трафика на инфраструктуру расширенных политик (Advanced Policy) в Citrix ADC».

Примечание.

Классические политики для Gateway и AAA продолжат поддерживаться без изменений функционала вплоть до второго квартала 2023-го года.

Для перехода на продвинутые политики существует инструмент Citrix ADC – nspepi, который можно использовать для конвертации команд, выражений и конфигурации. В качестве альтернативы, редактор выражений в графическом интерфейсе Citrix ADC – это отличный путь для ручной переделки классических выражений в продвинутые.

Необходимо отметить, что рекомендуется конвертировать все классические политики в продвинутые, чтобы использовать полностью поддерживаемую конфигурацию. В том числе, это касается таких политик как LDAP, RADIUS, сертификатов (CERT), syslog и политик сессий (session).

Один из способов проверить наличие классических политик, это выполнить поиск классических выражений в запущенной конфигурации nsconfig. Примерами ключевых слов для поиска могут быть «REQ.HTTP» и «ns_true». Обратите внимание, что эти два примера помогут найти большинство, но далеко не все классические политики.

Убедитесь, что продвинутые политики созданы для замены каждой классической и привязаны к виртуальным серверам.


Продвинутые политики аутентификации (Advanced Authentication Policy).

В случае использования Citrix Gateway для проксирования ICA или VPN, политики аутентификации привязываются как обязательная часть настройки. Классические политики аутентификации могут быть привязаны в секцию базовой аутентификации (Basic Authentication) виртуального сервера Citrix Gateway, но продвинутые политики так не работают. Чтобы использовать продвинутые политики аутентификации, необходимо настроить виртуальный сервер аутентификации и привязать его в профиль аутентификации на виртуальном сервере Citrix Gateway.

В сценарии с одним фактором это также просто как создать виртуальный сервер аутентификации и привязать продвинутую политику аутентификации со схемой входа (Login Schema) к серверу. Для сценариев с несколькими факторами, необходимо настроить аутентификацию nFactor. Поддержка nFactor для Citrix Gateway доступна с релиза 11.1, таким образом достаточно много информации о настройке уже существует. Вместе с релизом Citrix ADC 13.0, сборка 36.27, добавлена новая возможность для упрощения настройки nFactor при помощи графического интерфейса – nFactor Visualizer.


Мобильные политики (Citrix Workspace App).

Для сценариев двухфакторной аутентификации LDAP и RADIUS с мобильными устройствами, может возникнуть потребность в некоторых изменениях, которые необходимо внести в политики сессий. Это связано с тем, что при использовании потока nFactor, нужен только один поток для мобильных и не мобильных соединений. При использовании базовой аутентификации потоки разделены.

Ранее, при настройке Citrix Gateway на использование аутентификации RADIUS и LDAP с мобильными устройствами, LDAP настраивался в качестве основной политики для веб-соединений, а для соединений Receiver/Workspace в качестве вторичной политики. На диаграмме ниже представлен пример настройки двухфакторной базовой аутентификации с LDAP и RADIUS.

В такой конфигурации, индекс учётных данных в политиках сессий, указывающих на LDAP, должен был отличаться для веб и мобильных соединений. Для веб-соединений индекс учётных данных должен быть установлен в значение основного (Primary), а для соединений Citrix Workspace в значение вторичного (Secondary). При использовании потока nFactor и продвинутых политик, единый поток может обрабатывать как мобильные, так и не мобильные устройства. Это значит, что LDAP может являться основной политикой для обоих сценариев использования, а политика RADIUS будет вторичной. Если политика сессий Citrix Workspace ранее указывала на вторичный индекс учётных данных, ее необходимо обновить на первичную, для успешной аутентификации мобильных устройств на Citrix Gateway.


Темы оформления.

Вместе с отказом от классических политик, устаревшими также становятся и ряд тем оформления. При использовании оформления по умолчанию (Default), Green Bubble или X1, вы могли видеть предупреждение, указывающее на устаревание данных тем и их недоступность в будущих релизах.

Рекомендуется использовать тему оформления RFWebUI с конфигурацией nFactor и продвинутыми политиками. При использовании одной из устаревших тем с внесёнными изменениями, необходимо учесть, что изменения не перенесутся на RFWebUI. Механизм внесения изменений RFWebUI отличается и потребует перенастройки. Одним из отличий является то, что страница входа хранится в другом расположении (/var/netscaler/logon/LogonPoint/) в отличии от устаревших тем (/netscaler/ns_gui/vpn/). Файлы, которые необходимо настраивать для RfWebUI, также отличаются: index.html, strings.en.json и theme.css.


Дополнительные рекомендации.

При миграции с классических политик на продвинутые можно столкнуться с проблемой привязки продвинутых политик. Это связано с тем, что некоторые компоненты поддерживают использование как продвинутых, так и классических политик, но при этом они не могут использоваться одновременно с одним компонентом.

Это значит, что при использовании нескольких виртуальных серверов Citrix Gateway, к которым привязаны политики сессий, при попытке привязать продвинутые политики сессий к одному виртуальному серверу, будет возвращаться ошибка, если классически политики используются на других виртуальных серверах Citrix Gateway. В первую очередь необходимо отвязать все классические политики сессий на Citrix ADC, прежде чем появится возможность привязывать продвинутые политики.

Рекомендуется использовать анализ конечного устройства (EPA) с nFactor вместо классического анализа (Classic EPA). Это значит, что любая политика пред-аутентификации или пост-аутентификации, которая привязана напрямую к Citrix Gateway, должна быть удалена и заменена конфигурацией с использованием виртуального сервера аутентификации.


Основные выводы.

Клиенты Citrix, заинтересованные в отказе от устаревших компонентов, должны рассмотреть следующие рекомендации:

  • Конвертировать все классические политики в продвинутые.
  • Выполнить поиск по активной конфигурации (Running), чтобы убедиться, что классические выражения не были пропущены.
  • Использовать виртуальный сервер аутентификации для привязки продвинутых политик к виртуальному серверу Citrix Gateway.
  • Использовать nFactor Visualizer (новый компонент в Citrix ADC 13.0) для упрощения настройки nFactor.
  • Убедиться, что индекс учётных данных в политике сессий соответствует факторам LDAP.
  • Переключить старые неподдерживаемые темы на RfWebUI.
  • Отвязать все классические политики от компонентов перед привязкой продвинутых политик.
  • Настроить nFactor EPA для любых политик пред и пост-аутентификации.

Обратите внимание, что все пункты выше описывают устаревшие компоненты, необходимые для Citrix Gateway. При использовании других компонентов Citrix ADC, также могут потребоваться действия в связи с выводом из эксплуатации устаревших компонентов.

четверг, 7 апреля 2022 г.

Взаимодействие Red Hat и LLVM

Проект LLVM (ранее известный как Low Level Virtual Machine) – это набор компонентов, которые представляют собой блоки для сборки компиляторов и связанных инструментов. В Red Hat Enterprise Linux (RHEL) эти компоненты используются в компиляторе Rust, встроенном шейдерном компиляторе Mesa, а также в инструментах Berkeley Packet Filter (BPF), таких как BPF Compiler Collection (BCC) и bpftrace. Дополнительно, LLVM содержит собственный компилятор (Clang) и компоновщик (LLD), оба также являются частью RHEL.

Исходный проект для LLVM очень большой и быстро развивающийся почти с сотней правок в день и более чем 250 уникальными участниками в месяц. Помимо сборки и упаковки исходных кодов LLVM для RHEL, инженеры Red Hat активно взаимодействую с сообществом, чтобы сделать проект лучше. Сегодня мы рассмотрим проект LLVM и то, какую работу проделал Red Hat с LLVM за прошлый год.


LLVM Foundation.

LLVM Foundation – это некоммерческая организация, которая отвечает за нетехнические аспекты проекта LLVM в дополнение к обучению и продвижению компилятора и инструментов. Совет директоров LLVM Foundation состоит из девяти человек, в число которых входит Tom Stellard (Principal Software Engineer в Red Hat), также он выполняет функции секретаря в совете и менеджера релизов в проекте.


Управление релизами LLVM.

Исходный проект LLVM использует 6-ти месячный цикл релизов, который включает в себя мажорные релизы (X.0.0) и далее версия увеличивается на единицу при исправлении ошибок (X.0.1) в рамках цикла.

Также несколько инженеров в Red Hat поддерживает процесс релизов, исправляя ошибки и тестируя сборки.


Неявные указатели (Opaque Pointers).

Проект LLVM использует внутреннее представление компилятора, называемое LLVM IR. Компиляторы на базе LLVM выпускают это промежуточное представление и передают его компонентам для оптимизации и генерации машинного кода. LLVM IR – это хорошо определенное, постоянно улучшающееся и дополняемое новыми возможностями представление компилятора. Одним из таких улучшений, над которым работает сообщество, является неявные указатели (Opaque Pointers).


Opaque Pointers – указатели без связанного типа.

На данный момент в LLVM IR каждая запись указателя определяет тип значения, на которое он указывает, так, например i8* указывает на значение i8, i32* на 32-ух битное значение и так далее.

Удаление типа указателя должно упростить IR за счёт устранения необходимости конвертации между типами (очень популярная операция). В свою очередь, это должно помочь сократить сложность оптимизатора, а также ускорить и улучшить его работу. Red Hat помогает исходному проекту, улучшая оптимизатор и прочие части LLVM для работы с новым типом представления указателя.


Улучшения времени компиляции.

В Red Hat работают над рядом улучшений во внутренних структурах данных LLVM, чтобы увеличить скорость работы компилятора. Скорость компилятора (т.е. время, необходимое для компиляции программ) нередко игнорируется. Однако, этот показатель очень важен, так как он может помочь разработчикам сделать свою работу быстрее.

Помимо прочего, разработчики Red Hat сделали и делают следующее:

  • Добавили новых ботов для сборки в инфраструктуру LLVM.
  • Помогли улучшить удобство работы с инструментами LLVM при помощи более понятных вспомогательных сообщений.
  • Добавили в OpenCL реализацию C.
  • Создают каждую ночь моментальные сборки для использования в сообществе.
  • Улучшают возможности безопасности.
  • Исправляют ошибки.

Эта работа вместе с участием сообщества доступна в текущем и будет доступна в последующих релизах RHEL. Новая версия LLVM добавляется в каждом минорном релизе RHEL, таким образом, новейшие возможности и исправления ошибок всегда доступны пользователям Red Hat Enterprise Linux.

В Red Hat существует политика «Upstream First», по которой предпочтение отдается исходным проектам. Так как здоровое состояние исходного проекта неминуемо ведёт к улучшению качества продуктов Red Hat. Именно поэтому сотрудники Red Hat столь активно участвуют в проекте LLVM, не только в 2021-ом году, но и в предыдущие годы. Совместная работа над проектом LLVM продолжится и в дальнейшем.