Глава 12. Масштабное развёртывание WSL
Содержание
Масштабное развёртывание WSL требует от вас знакомство с некоторыми важными моментами для наилучшего практического опыта.
Важно быть уверенным, что при перезапуске своей системы каталог %APPDATA%\local
его пользовательской
учётной записи фиксируется. Если этот каталог уничтожается, такому пользователю потребуется повторно устанавливать дистро WSL всякий раз
когда он регистрируется в Windows. Это обусловлено тем, что внутри данного каталога сохраняются файловые системы WSL. В качестве альтернативы вы
можете устанавливать дистро от имени соответствующего пользователя посредством автоматизации с применением команды
wsl.exe --import
, которая делает для вас возможны определение того где сохранять соответствующую файловую
систему WSL. Это позволит вам выбирать фиксируемое местоположение.
После того как дистро WSL установлен, важно помнить, что соответствующий пользователь ПК Windows будет обладать к этому дистро WSL
доступом root
. Пользователь root
Linux аналогичен учётной записи
Administrator
Windows в том, что он обладает всеми полномочиями в пределах соответствующего дистро
Linux. Пока пользователь будет обладать доступом root
к своим дистро WSL и будет способен выполнять что
угодно внутри такого дистро, к ресурсам Windows всё ещё будут применяться ваши политики безопасности Windows. Итак, даже с доступом
root
к тем дистро WSL, которые установил данный пользователь, он будет обладать тем объёмом доступа к ресурсам
Windows, которые допускает его учётная запись Windows.
Скорее всего вы обнаружите что управление множеством ПК и пользователей внутри установок WSL является проблематичным.Это побуждает применять Ansible или Landscape, либо иную систему управления для обеспечения того, что вы будете обладать полной видимостью в тех дистро, которые вы развёртываете.
При применении Windows неизбежно возникает задача защиты систем от вредоносного программного обеспечения и вирусов. Если вы пользуетесь сторонней системой безопасности, вы можете обнаружить что она блокирует загрузку драйверов WSL. Обязательно проверяйте развёртывание перед его применением для пользователей, чтобы предотвращать любые неожиданные сюрпризы.
В корпоративном мире управление мобильными устройствами это распространённая практика для обеспечения того, что все деловые компьютеры и мобильные устройства обладают неким стандартным набором приложений и настроек Для наполнения этой роли MDM (Mobile Device Management) Microsoft обладает своим продуктом Intune, который вы можете применять для предварительной загрузки своих пользовательских систем Windows с дистро WSL непосредственно из Microsoft Store. Применяя Intune для доставки дистро WSL, ваши пользователи будут получать WSL готовым к работе как только они зарегистрируются в корпоративном устройстве.
Сервер Landscape Canonical это официально благословляемый способ управления большими установками Ubuntu WSL, например, в некой корпоративной сетевой среде. Он позволяет вам отслеживать т активно сопровождать ваши флотилии систем Ubuntu запуская сценарии или пакеты установки в неком подмножестве из всех ваших систем.
Мы предполагаем, что у вас имеется установленным сервер Landscape в соответствии с инструкциями из https://docs.ubuntu.com/landscape/en/.
Данная глава собирает обсуждавшуюся нами ранее среду со включённым SystemD, поскольку landscape-client
ожидает управления со стороны процесса systemd
.
Самый первый шаг после того как вы получили исполняемым сервер Landscape состоит в регистрации в экране Launchpad admin
(Рисунок 12-1) и переходе к инструкциям по обнаружению URL вашей регистрации и его ping.
Кликните по ссылке в самой левой панели своих страниц администрирования, помеченной как following these
instructions
. Важно отметить, что ваш ping URL всегда HTTP (не безопасный), в то время как скорее всего регистрируемый URL
является HTTPS (безопасный).
Рисунок 12-1
Экран Launchpad admin отображающий основную ссылку к инструкциям для регистрации новых компьютеров
Основные приводимые в руководстве инструкции таковы:
-
Обновите свои репозитории:
> sudo apt-get update
-
Установите необходимого клиента:
> sudo apt-get install landscape-client
-
Если вы следовали инструкциям установки Quickstart для своего сервера Landscape, вам также потребуется скопировать ключ шифрования для каждого из хостов, потому что он не подписан распознаваемым SSL Certification Authority вашей компании.
-
Зарегистрируйтесь в консоли своего сервера Landscape и скопируйте необходимый файл из
/etc/ssl/certs/landscape_server_ca.crt
в известное совместно используемое местоположение. -
В каждой системе, которую вы желаете добавить в свой сервер Landscape скопируйте этот файл, который мы сохранили ранее в п.3a в
/etc/landscape/server.pem
каждого клиента. -
При исполнении команды п.4 добавляйте в её конец для применения сохранённого общедоступного ключа такой параметр:
--ssl-public-key /etc/landscape/server.pem
-
-
Зарегистрируйте свой компьютер - ваш
landscape-url
, скорее всего, будет отличаться, вы можете пожелать заменитьMy Computer Title
на подходящее вам описание для своего экземпляра WSL и вам может потребоваться изменить название учётной зпаиси своей оргранизации Launchpad. Если вы сомневаетесь в названии своей организации илиlandscape-url
, проконсультируйтесь с инструкциями на страницах администрирования своего Launchpad.> sudo landscape-config --computer-title "My Computer Title" --account-name "standalone" --url https://landscape-url/message-system --ping-url http://landscape-url/ping
Для возможности исполнения команд от имени rot вам потребуется добавлять имя пользователя при получении приглашения на его ввод, которому допускается применять Landscape для исполнения сценария. На приводимом снимке экрана он настроен на специальное ключевое слово ALL, что подразумевает, что Landscape может применяться любым пользователем.
-
Если регистрация успешна, вы должны получить свой компьютер помещённым на странице “Pending Computers” Launchpad. Ваша регистрация может столкнуться с отказом если имя хоста не разрешается в DNS, в таком случае вы можете либо воспользоваться IP адресом или добавить имя хоста своего экземпляра WSL в файл
/etc/hosts
.Рисунок 12-4
Отложенная регистрация для нового компьютера
Теперь, когда вы обладаете установленным подключением, мы можем начать запускать сценарии и свои пакеты обновлений. Прежде всего мы исполним сценарий для отображения занятости диска вашего экземпляра WSL. Переместитесь в компьютеры и выберите “scripts” сверху в самой правой панели.
В блок кода вставьте такой сценарий:
#!/bin/bash
echo "Free Disk Space"
df –h
echo # blank line to separate the scripts
echo "Disk Usage by top-level folder"
du -sh --exclude=/mnt --exclude=/proc /*
Прокрутите к блоку “Run as user” и введите “root” или иного пользователя по своему выбору - этому пользователю должна быть позволена настройка landscape-client, которая приглашается на ввод при первой установке этого клиента. Наконец, кликните кнопку “Run” внизу этой страницы и дождитесь завершения данного сценария в тот момент, когда ваша страница обновится с указанием успешности или отказа.
Затем вы можете кликнуть по значению состояния команды для просмотра результатов вывода этого сценария.
У нас также имеется возможность управления установленными пакетами когда мы перейдём в закладку Packages. Для установки некого пакета
введите в Search для блока пакетов его название, например, ffmpeg
, и затем кликните по увеличительному
стеклу или нажмите Ввод.
В каждой из страниц результатов поиска пользуйтесь символом + вслед
за теми пакетами, которые вы пожелаете установить. В данном примере мы выбрали толко пакет ffmpeg
.
Кликните по кнопке “Apply changes” внизу и дождитесь завершения этой задачи.
Наконец, мы можем также выполнять полное обновление или лишь обновления безопасности. Для обновлений, относящихся только к безопасности, когда таковые доступны, вы обнаружите в закладке Packages экран, аналогичный приводимому ниже.
Вы также обнаружите следующие сведения в закладке Organization, а также ниспадающее меню предупредительных сообщений (Alert).
Кликните по предупредительным сообщениям или изберите компьютер (компьютеры), а затем выбор закладки Packages переместит вас на аналогичный экран, в котором вы можете выбрать обновления для их применения. Здесь пакеты могут либо обновляться путём клика по символу -, либо обновляться через клик по символу ↑ (Рисунок 12-13). В любом случае вы применяете сделанные изменения через кнопку “Apply changes” внизу.
Ansible является одной из ведущих платформ автоматизации управления конфигурациями. Являясь продуктом с открытым исходным кодом, он готов к доступу на выгрузку с https://github.com/ansible/ansible, а также доступен в репозитории APT Ubuntu. Он разработан Red Hat и также обладает планами поддержки на время вашего путешествия на сайте https://ansible.com/. {Прим. пер.: рекомендуем также наши переводы 3 издания Полного руководства Ansible Джеймса Фримана и Джесса Китинга и Практической автоматизации предприятия в Linux Джеймса Фримана}.
Вам потребуется система Linux или macOS для размещения части серверной стороны Ansible, поскольку Windows пока не поддерживается в настоящее время для такого сервера. Для тех систем, которыми вы желаете управлять из Ansible, вам также потребуется запустить некий сервер SSH, например OpenSSH. В дистро WSL Ubuntu вы можете установить OpenSSH через APT:
> sudo apt install openssh-server
Тем не менее, поскольку WSL не запускает службы автоматически, вам придётся установить среду systemd, как это обсуждалось ранее. В качестве
альтернативы, если вы не желаете запускать установку SystemD, вы должны вызывать команду sshd
через
некие иные средства, например, посредством заданий Планировщика задач Windows (Windows Task Scheduler). Такое задание Планировщика задач Windows
обязано выполнить регистрацию в Windows и воспользоваться командой wsl.exe
для запуска необходимого дистро и
sshd
внутри него.
Для управления множеством дистро WSL при помощи Ansible в одном и том же ПК Windows вам потребуется настроить
sshd
каждого дистро WSL на применение некого уникального сетевого “порта”, если только и сервер управления,
и управляемые экземпляры WSL2 не находятся в одном и том же ПК, поскольку у вас может иметься несколько служб, прослушивающих один и тот же порт,
а для управления с удалённого сервера вместо того же самого ПК, вам требуется настроить цель на имя хоста соответствующего ПК Windows или
IP для доступа к тому порту, который выступает посредником (прокси) в Windows из каждого экземпляра WSL. По умолчанию
sshd
связывается по порту 22.
Когда все управляемые клиенты и сам сервер в одном и том же ПК в раздельных дистро WSL
и эти дистро применяют WSL2, тогда вы можете ставить целями соответствующие дистро по их внутренним
адресам вместо изменения номера порта в каждой из служб sshd
. Тем не менее, такие сервер и клиенты
обязаны применять WSL2 для их доступности по внутреннему адресу, отличающемуся от физического сетевого
адреса своего ПК.
При создании описи (inventory) хоста для Ansible вам придётся добавлять соответствующий номер порта, когда его дистро WSL настроен на
применение отличного от 22 порта. В самом сервере управления создайте файл /etc/ansible/hosts
для
удержания имён хостов или IP адресов и, в качестве не обязательного параметра, их номеров портов, когда они отличаются от 22:
192.0.2.50
windows-pc.example.org
windows-pc.example.org:8022 ; alternative port number 8022.
Вам следует настроить пары ключей SSH в своём сервере при помощи ssh-keygen
и настроить каждого клиента
на применение его для аутентификации. Ubuntu настраивается на поддержку идентификации по общедоступному ключу сразу после установки. Вам
потребуется скопировать общедоступный ключ SSH в файл $HOME/.ssh/authorized_keys
каждого клиента, к
которому вы будете подключаться со своего сервера. Это можно упростить при помощи команды ssh-copy-id
в
системе с установленными и общедоступным и частным ключами, причём самым простым местом является та система, в которой вы запускали
ssh-keygen
. Возможно, вам придётся перенастроить sshd
своих
клиентов, чтобы допускать аутентификацию по паролю ssh-copy-id
для правильного копирования ключа SSH.