Начало работы с настройкой требуемого состояния (DSC) для Linux
В этом разделе объясняется, как приступить к работе с настройкой требуемого состояния PowerShell (DSC) для Linux. Общие сведения о службе настройки требуемого состояния см. в разделе Начало работы со службой настройки требуемого состояния Windows PowerShell.
Поддерживаемые версии операционной системы Linux
DSC для Linux поддерживает следующие версии операционной системы Linux.
- CentOS 7 и 8 (x64)
- Debian GNU/Linux 8, 9 и 10 (x64)
- Oracle Linux 7 (x64)
- Red Hat Enterprise Linux Server 7 и 8 (x64)
- SUSE Linux Enterprise Server 12 и 15 (x64)
- Ubuntu Server 14.04 LTS, 16.04 LTS, 18.04 LTS и 20.04 LTS (x64)
Установка DSC для Linux
Перед установкой DSC для Linux необходимо установить открытую инфраструктуру управления (OMI).
Установка OMI
Настройка требуемого состояния для Linux требует наличия CIM-сервера открытой инфраструктуры управления (OMI) версии 1.0.8.1 и выше. OMI можно скачать на сайте Open Group: Открытая инфраструктура управления (OMI).
Чтобы установить OMI, установите пакет, соответствующий вашей системе Linux (RPM или DEB), а также версии OpenSSL (ssl_098 или ssl_100) и архитектуре (x64 или x86). Пакеты RPM подходят для CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server и Oracle Linux. Пакеты DEB подходят для Debian GNU/Linux и Ubuntu Server. Пакеты ssl_098 подходят для компьютеров с установленным OpenSSL 0.9.8, а пакеты ssl_100 — для компьютеров с установленным OpenSSL 1.0.
Примечание
Чтобы определить установленную версию OpenSSL, выполните команду openssl version
.
Выполните указанную ниже команду для установки OMI в системе CentOS 7 x64.
# sudo rpm -Uvh omiserver-1.0.8.ssl_100.rpm
Установка DSC
DSC для Linux можно скачать из репозитория PowerShell-DSC-for-Linux.
Чтобы установить DSC, установите пакет, подходящий для вашей системы Linux (.rpm или .deb), версии OpenSSL и архитектуры (x64/x86). Пакеты RPM подходят для CentOS, Red Hat Enterprise Linux, SUSE Linux Enterprise Server и Oracle Linux. Пакеты DEB подходят для Debian GNU/Linux и Ubuntu Server.
Примечание
Поддержка DSC Linux OpenSSL до версии 1.1. Чтобы определить установленную версию OpenSSL, выполните команду openssl version
.
Выполните указанную ниже команду для установки DSC в системе CentOS 7 x64.
# sudo rpm -Uvh dsc-1.0.0-254.ssl_100.x64.rpm
Использование DSC для Linux
В следующих разделах описывается создание и запуск конфигураций DSC на компьютерах Linux.
Создание MOF-документа конфигурации
На компьютерах Linux (как и на компьютерах Windows) для создания конфигурации используется ключевое слово конфигурации Windows PowerShell. Следующие шаги описывают создание документа конфигурации для компьютера Linux с использованием Windows PowerShell.
Импортируйте модуль nx. Модуль nx для Windows PowerShell содержит схему для встроенных ресурсов DSC в Linux, поэтому он должен быть установлен на локальном компьютере и импортирован в конфигурацию.
- Чтобы установить модуль nx, скопируйте каталог модуля nx в
$env:USERPROFILE\Documents\WindowsPowerShell\Modules\
или в$PSHOME\Modules
. Модуль nx включается в пакет установки DSC для Linux. Чтобы импортировать модуль nx в конфигурацию, выполните командуImport-DSCResource
:
Configuration ExampleConfiguration{ Import-DSCResource -ModuleName nx }
- Чтобы установить модуль nx, скопируйте каталог модуля nx в
Определите конфигурацию и создайте документ конфигурации:
Configuration ExampleConfiguration { Import-DSCResource -ModuleName nx Node "linuxhost.contoso.com" { nxFile ExampleFile { DestinationPath = "/tmp/example" Contents = "hello world `n" Ensure = "Present" Type = "File" } } } ExampleConfiguration -OutputPath:"C:\temp"
Передача конфигурации на компьютер Linux
Документы конфигурации (MOF-файлы) можно принудительно отправить на компьютер Linux с помощью командлета Start-DscConfiguration. Чтобы выполнить этот командлет, как и командлеты Get-DscConfiguration или Test-DscConfiguration, удаленно на компьютере Linux, необходимо использовать CIMSession. Для создания CIMSession на компьютере Linux служит командлет New-CimSession.
Создание CIMSession в DSC для Linux демонстрируется в следующем коде.
$Node = "ostc-dsc-01"
$Credential = Get-Credential -UserName "root" -Message "Enter Password:"
#Ignore SSL certificate validation
# $opt = New-CimSessionOption -UseSsl -SkipCACheck -SkipCNCheck -SkipRevocationCheck
#Options for a trusted SSL certificate
$opt = New-CimSessionOption -UseSsl
$sessParams = @{
Credential = $credential
ComputerName = $Node
Port = 5986
Authentication = 'basic'
SessionOption = $opt
OperationTimeoutSec = 90
}
$Sess = New-CimSession @sessParams
Примечание
В режиме принудительной передачи необходимо указывать учетные данные привилегированного пользователя на компьютере Linux. DSC для Linux поддерживает только SSL/TLS-подключения, поэтому необходимо использовать командлет New-CimSession
с параметром –UseSSL, имеющим значение $true. SSL-сертификат, используемый OMI (DSC), указан в файле /etc/opt/omi/conf/omiserver.conf
со свойствами pemfile и keyfile. Если компьютер Windows, на котором выполняется командлет New-CimSession, не признает этот сертификат как надежный, проверку сертификата можно пропустить, используя параметры CIMSession: -SkipCACheck -SkipCNCheck -SkipRevocationCheck
Для принудительной отправки конфигурации DSC на узел Linux используйте следующую команду:
Start-DscConfiguration -Path:"C:\temp" -CimSession $Sess -Wait -Verbose
Распространение конфигурации через опрашивающий сервер
Конфигурации можно распространять на компьютер Linux через опрашивающий сервер, как и в случае компьютеров с Windows. Рекомендации по работе с опрашивающим сервером см. в статье Опрашивающие серверы настройки требуемого состояния Windows PowerShell. Дополнительные сведения и ограничения, связанные с использованием компьютеров Linux с опрашивающим сервером, см. в заметках о выпуске настройки требуемого состояния для Linux.
Локальная работа с конфигурациями
DSC для Linux включает сценарии работы с конфигурацией на локальном компьютере Linux. Эти сценарии расположены в /opt/microsoft/dsc/Scripts
и включают следующее:
GetDscConfiguration.py
Возвращает текущую конфигурацию, примененную к компьютеру. Аналог командлета
Get-DscConfiguration
в Windows PowerShell.# sudo ./GetDscConfiguration.py
GetDscLocalConfigurationManager.py
Возвращает текущую метаконфигурацию, примененную к компьютеру. Аналог командлета Get-DSCLocalConfigurationManager.
# sudo ./GetDscLocalConfigurationManager.py
InstallModule.py
Устанавливает пользовательский модуль ресурсов DSC. Необходим путь к ZIP-файлу, содержащему библиотеку общих объектов модуля и MOF-файлы схемы.
# sudo ./InstallModule.py /tmp/cnx_Resource.zip
RemoveModule.py
Удаляет пользовательский модуль ресурсов DSC. Требуется имя модуля, который нужно удалить.
# sudo ./RemoveModule.py cnx_Resource
StartDscLocalConfigurationManager.py
Применяет MOF-файл конфигурации к компьютеру. Аналог командлета Start-DscConfiguration. Требуется путь к соответствующему MOF-файлу конфигурации.
# sudo ./StartDscLocalConfigurationManager.py –configurationmof /tmp/localhost.mof
SetDscLocalConfigurationManager.py
Применяет MOF-файл метаконфигурации к компьютеру. Аналог командлета Set-DSCLocalConfigurationManager. Требуется путь к соответствующему MOF-файлу метаконфигурации.
# sudo ./SetDscLocalConfigurationManager.py –configurationmof /tmp/localhost.meta.mof
Настройка требуемого состояния Windows PowerShell для файлов журнала Linux
Для сообщений DSC для Linux формируются следующие файлы журналов:
Файл журнала | Каталог | Описание |
---|---|---|
omiserver.log | /var/opt/omi/log |
Сообщения, относящиеся к работе сервера OMI CIM. |
dsc.log | /var/opt/omi/log |
Сообщения, относящиеся к работе локального диспетчера конфигураций (LCM) и операциям с ресурсами DSC. |