Время на прочтение6 мин
Количество просмотров10K
Зачем собирать образ с помощью Packer?
- Время создания инстанса из готового образа значительно меньше, чем время, которое нужно затратить с нуля на подготовку виртуальной машины к работе. Это достаточно критичный момент, так как порой очень важно ввести в работу новый инстанс нужного типа за кратчайшее время для того, чтобы начать пускать на него трафик.
- Помимо того что образ виртуальной машины для DEV, TEST, Staging окружений, он всегда будет соответствовать по набору ПО и его настройкам тому серверу, который используется в production. Важность этого момента трудно недооценить — крайне желательно, чтобы деплой нового кода на продакшн привел к тому, чтобы сайт продолжал корректную работу с новой функциональностью, а не упал из-за какой-то ошибки, связанной с недостающим модулем или отсутствующим ПО.
- Автоматизация сборки production- и development-окружений экономит время системного администратора. В глазах работодателя это также должно быть несомненным плюсом, так как это означает, что за то же время администратор сможет выполнить больший объем работы.
- Время для тестирования набора ПО, его версий, его настроек. Когда мы подготавливаем новый образ заранее, у нас есть возможность (и, что самое главное, время!) для того, чтобы спокойно и вдумчиво проанализировать различные ошибки, которые возникли при сборке образа, и исправить их. Также есть время для тестирования работы приложения на собранном образе и внесения каких-то настроек для оптимизации приложений. В случае же, если мы настраиваем инстанс, который нужно было ввести в работу еще вчера, все возникающие ошибки, как правило, исправляются по факту их возникновения уже на работающей системе — конечно же, это не совсем правильный подход.
Более подробно можете прочитать про packer здесь.
В процессе сборки запускается Ansible, который устанавливает обновления Windows. С помощью ansible гораздо проще управлять установкой приложений, настройкой Windows чем Powershell. Подробнее про использование ansible и windows здесь.
В посте описаны ошибки, которые вы можете получить, и их решение.
Готовый работе репозиторий: https://github.com/patsevanton/packer-windows-with-update-ansible-yandex-cloud
Установка необходимых пакетов
sudo apt update
sudo apt install git jq python3-pip -y
Устанавливаем ansible pywinrm
sudo pip3 install ansible pywinrm
Устанавливаем коллекцию ansible.windows
ansible-galaxy collection install ansible.windows
Установка Packer.
Необходимо установить Packer по инструкции с официального сайта https://learn.hashicorp.com/tutorials/packer/get-started-install-cli
Установка Yandex.Cloud CLI
https://cloud.yandex.com/en/docs/cli/quickstart#install
curl https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash
Загружаем обновленные настройки .bashrc без выхода из системы
source ~/.bashrc
Инициализация Yandex.Cloud CLI
yc init
Клонируем репозиторий с исходным кодом
git clone https://github.com/patsevanton/packer-windows-with-update-ansible-yandex-cloud.git
cd packer-windows-with-update-ansible-yandex-cloud
Скачиваем ConfigureRemotingForAnsible.ps1
wget https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1
Создайте сервисный аккаунт и передайте его идентификатор в переменную окружения, выполнив команды
yc iam service-account create --name <имя пользователя>
yc iam key create --service-account-name <имя пользователя> -o service-account.json
SERVICE_ACCOUNT_ID=$(yc iam service-account get --name <имя пользователя> --format json | jq -r .id)
В документации к Yandex Cloud параметр folder_id описывается как <имя_каталога>.
Получите folder_id из yc config list
Назначьте сервисному аккаунту роль admin в каталоге, где будут выполняться операции:
yc resource-manager folder add-access-binding <folder_id> --role admin --subject serviceAccount:$SERVICE_ACCOUNT_ID
Заполняем файл credentials.json.
"folder_id": "<folder_id>",
"password": "<Пароль для Windows>"
Заполняем credentials.json
Запускаем сборку образа
packer build -var-file credentials.json windows-ansible.json
Готовый образ можно будет найти в сервисе Compute Cloud на вкладке Образы.
Через Yandex Cloud CLI будет виден вот так.
yc compute image list
+----------------------+-------------------------------------+--------+----------------------+--------+
| ID | NAME | FAMILY | PRODUCT IDS | STATUS |
+----------------------+-------------------------------------+--------+----------------------+--------+
| fd88ak25ivc8rn1e4bn7 | windows-server-2021-09-20t04-47-57z | | f2e01pla7dr1fpbeihp9 | READY |
+----------------------+-------------------------------------+--------+----------------------+--------+
Описание кода в user-data
При сборке образа сначала выполняется скрипты, описанные в user-data:
Установка пароля пользователя Administrator
net user Administrator {{user `password`}}
Удаление скриптов из директории C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\
ls \"C:\\Program Files\\Cloudbase Solutions\\Cloudbase-Init\\LocalScripts\" | rm
Удаляет доверенные хосты службы WS-Management по адресу \Localhost\listener\listener*
Remove-Item -Path WSMan:\\Localhost\\listener\\listener* -Recurse
Удаляет сертификаты с локального сервера
Remove-Item -Path Cert:\\LocalMachine\\My\\*
Получает DNS имя из службы метаданных
$DnsName = Invoke-RestMethod -Headers @{\"Metadata-Flavor\"=\"Google\"} \"http://169.254.169.254/computeMetadata/v1/instance/hostname\"
Получает hostname имя из службы метаданных
$HostName = Invoke-RestMethod -Headers @{\"Metadata-Flavor\"=\"Google\"} \"http://169.254.169.254/computeMetadata/v1/instance/name\"
Получает сертификат из службы метаданных
$Certificate = New-SelfSignedCertificate -CertStoreLocation Cert:\\LocalMachine\\My -DnsName $DnsName -Subject $HostName
Создает новое значение HTTP
в службе WS-Management по адресу \LocalHost\Listener c параметром Address *
New-Item -Path WSMan:\\LocalHost\\Listener -Transport HTTP -Address * -Force
Создает новое значение HTTPS
в службе WS-Management по адресу \LocalHost\Listener c параметром Address *
, HostName и Certificate
New-Item -Path WSMan:\\LocalHost\\Listener -Transport HTTPS -Address * -Force -HostName $HostName -CertificateThumbPrint $Certificate.Thumbprint
Добавляет в firewall правило разрешающее трафик на порт 5986
netsh advfirewall firewall add rule name=\"WINRM-HTTPS-In-TCP\" protocol=TCP dir=in localport=5986 action=allow profile=any
Тестирование и отладка
Для отладки запускаем packer с опцией debug
packer build -debug -var-file credentials.json windows-ansible.json
Но так как опция -debug
требует потверждения на каждый шаг, для отладки добавляем конструкцию после шага, который нужно отладить, например, после запуска ansible.
{
"type": "shell",
"inline": [
"sleep 9999999"
]
},
Отредактируем файл ansible/inventory. Проверим win_ping.
ansible windows -i ansible/test-inventory -m win_ping
Тестируем установку обновлений Windows без Packer
ansible-playbook -i ansible/test-inventory ansible/playbook.yml
Ошибки
Если не запустить ConfigureRemotingForAnsible.ps1 на Windows, то будет такая ошибка
basic: the specified credentials were rejected by the server
Если забыли установить «use_proxy» в false, то будет такая ошибка
basic: HTTPSConnectionPool(host=''127.0.0.1'', port=5986): Max retries exceeded with url: /wsman (Caused by NewConnectionError(''<urllib3.connection.VerifiedHTTPSConnection object at 0x7f555c2d07c0>: Failed to establish a new connection: [Errno 111] Connection refused''))
Если в таске Ensure the local user Administrator has the password specified for TEST\Administrator
будет ошибка
requests.exceptions.HTTPError: 401 Client Error: for url: https://xxx:5986/wsman
...
winrm.exceptions.InvalidCredentialsError: the specified credentials were rejected by the server
То вы забыли синхронизировать пароли в переменных pdc_administrator_password
и ansible_password
Временный ansible inventory с именем /tmp/packer-provisioner-ansiblexxxx будет иметь вот такой вид:
default ansible_host=xxx.xxx.xxx.xxx ansible_connection=winrm ansible_winrm_transport=basic ansible_shell_type=powershell ansible_user=Administrator ansible_port=5986
Тестирование сборки Windows c Active Directory
Так же тестировал сборку Windows c Active Directory, используя Galaxy роль justin_p.pdc
, но при запуске нового instance из собранного образа получал ошибку.
В комментариях написали что Running Sysprep on a domain controller is not supported
2021-09-18 19:34:31, Error SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing 'CryptoSysPrep_Specialize' from C:\Windows\system32\capisp.dll; dwRet = 0x32
2021-09-18 19:34:31, Error SYSPRP SysprepSession::ExecuteAction: Failed during sysprepModule operation; dwRet = 0x32
2021-09-18 19:34:31, Error SYSPRP SysprepSession::ExecuteInternal: Error in executing action for Microsoft-Windows-Cryptography; dwRet = 0x32
2021-09-18 19:34:31, Error SYSPRP SysprepSession::Execute: Error in executing actions from C:\Windows\System32\Sysprep\ActionFiles\Specialize. xml; dwRet = 0x32
2021-09-18 19:34:31, Error SYSPRP RunPlatformActions:Failed while executing Sysprep session actions; dwRet = 0x32
2021-09-18 19:34:31, Error [0x060435] IBS Callback_Specialize: An error occurred while either deciding if we need to specialize or while specializing; dwRet = 0x32
Немного рекламы: На платформе https://rotoro.cloud/ вы можете найти курсы с практическими занятиями:
- Ansible для начинающих + практический опыт
- Certified Kubernetes Administrator (CKA) + практический опыт
- Docker для начинающих + практический опыт
- Kubernetes для начинающих + практический опыт
- Terraform для начинающих + практический опыт
- Практика для вхождения в IT (Linux, Docker, git, Jenkins)
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
|
Microsoft не продлила контракт на предоставление своих лицензий с «Яндекс.Облаком». С этой же проблемой столкнулась и облачная платформа VK. Так, с 31 августа 2022 г. лицензирование сервисов на базе продуктов Microsoft этими компаниями будет приостановлено. В «Яндексе» предложили переходить на альтернативные решения или приобретать лицензии Microsoft самостоятельно.
Microsoft не продлил контракт
Американская корпорация Microsoft, которая приостановила свою деятельность на территории России в марте 2022 г., в одностороннем порядке не продлила договор на предоставление своих лицензий «Яндекс.Облаком». В этой связи после 31 августа 2022 г. лицензирование
сервисов на базе продуктов Microsoft будет приостановлено. Об этом компания «Яндекс.Облако»
сообщила у себя на сайте.
«Мы продолжаем искать варианты возобновления сотрудничества
с Microsoft, но пока не можем гарантировать, что наш контракт будет продлен», — сообщают в «Яндекс.Облаке».
«Начиная с 1 сентября 2022, мы будем вынуждены ограничить
предоставление лицензий Microsoft. — Предупреждает «Яндекс.Облако» своих пользователей. — Ответственность за дальнейшее
лицензирование используемых сервисов перейдёт на клиентов, как на конечных пользователей
продуктов Microsoft».
Как рассказали CNews представители облачной платформы, ситуация затрагивает около 15% клиентов «Яндекс.Облака»
Чего лишатся
россияне
С 15 августа 2022 г. создание новых сервисов на базе
Microsoft в «Яндекс.Облаке» станет невозможным. «Текущие сервисы продолжат свою
работу, но новые кластеры управляемого SQL Server и виртуальные машины на базе
Windows Server развернуть не получится», — уточняют в компании.
Пользователи «Яндекс.Облака» лишаться лицензий Microsoft с 1 сентября 2022 года
С 31 августа 2022 г. «Яндекс.Облако» будет вынуждена
выключить KMS-серверы, которые отвечают за лицензирование сервисов SQL Server,
Windows Server и RDS. «Также нам придется остановить кластеры сервиса Managed
Service for SQL Server».
Помимо этого, пострадают сервисы «Лаборатории Касперского» и
Loginom. Вендоры сообщили, что
работают над версиями этих продуктов на базе Linux.
Сообщение на официальной странице «Яндекс.Облака»
Что делать
«У пользователей YandexCloud сохранится возможность использовать продукты Microsoft при условии их самостоятельного
лицензирования, — рассказали CNews
представители «Яндекс.Облака». — При необходимости мы готовы помочь с выбором
альтернативных решения для их замены».
«Яндекс.Облако» предлагает использовать
свои собственные лицензии Microsoft по модели Bring Your Own License (использование своих уже имеющихся лицензий).
Тем, кому эта модель не подходит, предлагается до 31 августа 2022 г. рассмотреть
альтернативные решения «Яндекс.Облака» для замещения нелицензионных сервисов
Microsoft вместе с аккаунт-менеджером пользователя.
Отключают не только «Яндекс»
Помимо «Яндекса» Microsoft не продлила контракт и с VK Cloud
Solutions. Так, 29 июля 2022 г. компания направила своим клиентам об этом
письмо. В нем говорится, что с 31 августа истекает срок действия лицензионного Microsoft
с VK и потому продукты американской корпорации «перейдут в режим
нелицензированных». Об этом говорится в официальном сообществе компании в Telegram.
Денис Лобачёв, OpenYard: Вендорская поддержка воспринимается как необходимый элемент зрелого проекта
Цифровизация
И VK и «Яндекс.Облако» подписывали с Microsoft SPLA контракт (Services
Provider License Agreement) — лицензионное соглашение, которое позволяет
поставщикам услуг и независимым разработчикам ПО лицензировать продукты
Microsoft и предоставлять их своим клиентам в качестве услуг.
CNews
ожидает ответа от МТС и «Селектела» — продлила ли Microsoft
контракты с ними. В «Ростелекоме» отказались от комментариев.
- 10 функций Telegram, о которых вы не знали: наводим порядок в чатах
Главная / Новости
28.08.2024
Москва, 28 августа 2024 г. Новая версия YCloud Backup v1.3 появилась в Маркетплейс Yandex.Cloud. Основной функцией, добавленной в продукт по запросам пользователей, является поддержка технологии Volume Shadow Copy Service (VSS). Эта технология позволяет упростить процесс резервирования и восстановления информации на виртуальных машинах с ОС Windows Server и повысить защиту данных пользователей Yandex.Cloud.
В предыдущей версии в YCloud Backup была добавлена поддержка любых совместимых AWS S3 объектных хранилищ для хранения резервных копий. Это повышает защищённость данных пользователей за счет возможности их резервирования на внешнем хранилище и экономит стоимость хранения копий данных за счет выбора типа объектного хранилища в Yandex.Cloud: Стандартное, Холодное, Ледяное.
При помощи YCloud Backup пользователи Yandex Cloud смогут:
- • Настроить пользователей с различными ролями для разграничения доступов к системе.
- • Создать набор операций резервного копирования по расписанию в соответствии с политикой клиента.
- • Рассчитать примерную стоимость хранения резервных копий в месяц.
- • Восстановить диск или виртуальную машину в исходном виде с сохранением всех данных и конфигурации.
- • Обеспечить целостность данных при резервном копировании работающих приложений в гостевой операционной системе Windows.
- • Восстановить отдельные файлы или директории с резервной копии диска или виртуальной машины.
- • Информировать администратора по электронной почте о результатах выполнения операций резервного копирования.
- • Выполнить базовые операции с виртуальными машинами как вручную, так и по заданному расписанию.
- • Запустить скрипты в гостевой операционной системе до и после бэкапа для обеспечения целостности данных работающих приложений.
- • Использовать любые совместимые S3 объектные хранилища для хранения резервных копий.
- • Использовать технологию VSS для обеспечения целостности данных приложений виртуальных машин под управлением MS Windows Server.
«Несмотря на переход пользователей на российские ОС, многие компании продолжают использовать приложения на Windows Server, в т.ч. в Яндекс. Облако. Для них мы добавили возможность применения VSS в операциях резервирования данных, что является стандартной практикой для этой ОС. YCloud Backup повысит защиту данных и упростит работу с резервным копированием и восстановлением пользователям Яндекс. Облако», — отметил генеральный директор разработчика SVZCloud Юрий Бражников.
Вы можете протестировать и использовать YCloud Backup из Yandex.Cloud Маркетплейс.
Доступны две версии продукта:
Basic — для бэкапа до 10 ВМ,
Enterprise — до 50 ВМ.
Версия свыше 50 ВМ поставляется по запросу клиента.
О SVZCloud
SVZCloud специализируется на поставке, внедрении и разработке систем объединенных коммуникаций и защиты данных для предприятий, организаций и сервис-провайдеров. Проекты любого размера и сложности реализует команда сертифицированных специалистов с более чем 20-летним опытом работы в сфере ИТ и телекома. Компания является эксклюзивным партнером Zextras — ведущего мирового разработчика систем коммуникаций и совместной работы для почтового сервера Zimbra и собственного сервера Carbonio. Разработчики SVZCloud создали безагентный бэкап виртуальных машин и дисков для Yandex Cloud. Больше информации о решениях компании на сайте https://svzcloud.ru/
Зачем собирать образ с помощью Packer?
- Время создания инстанса из готового образа значительно меньше, чем время, которое нужно затратить с нуля на подготовку виртуальной машины к работе. Это достаточно критичный момент, так как порой очень важно ввести в работу новый инстанс нужного типа за кратчайшее время для того, чтобы начать пускать на него трафик.
- Помимо того что образ виртуальной машины для DEV, TEST, Staging окружений, он всегда будет соответствовать по набору ПО и его настройкам тому серверу, который используется в production. Важность этого момента трудно недооценить — крайне желательно, чтобы деплой нового кода на продакшн привел к тому, чтобы сайт продолжал корректную работу с новой функциональностью, а не упал из-за какой-то ошибки, связанной с недостающим модулем или отсутствующим ПО.
- Автоматизация сборки production- и development-окружений экономит время системного администратора. В глазах работодателя это также должно быть несомненным плюсом, так как это означает, что за то же время администратор сможет выполнить больший объем работы.
- Время для тестирования набора ПО, его версий, его настроек. Когда мы подготавливаем новый образ заранее, у нас есть возможность (и, что самое главное, время!) для того, чтобы спокойно и вдумчиво проанализировать различные ошибки, которые возникли при сборке образа, и исправить их. Также есть время для тестирования работы приложения на собранном образе и внесения каких-то настроек для оптимизации приложений. В случае же, если мы настраиваем инстанс, который нужно было ввести в работу еще вчера, все возникающие ошибки, как правило, исправляются по факту их возникновения уже на работающей системе — конечно же, это не совсем правильный подход.
Более подробно можете прочитать про packer здесь.
В процессе сборки запускается Ansible, который устанавливает обновления Windows. С помощью ansible гораздо проще управлять установкой приложений, настройкой Windows чем Powershell. Подробнее про использование ansible и windows здесь.
В посте описаны ошибки, которые вы можете получить, и их решение.
Готовый работе репозиторий: https://github.com/patsevanton/packer-windows-with-update-ansible-yandex-cloud
Установка необходимых пакетов
sudo apt update
sudo apt install git jq python3-pip -y
Устанавливаем ansible pywinrm
sudo pip3 install ansible pywinrm
Устанавливаем коллекцию ansible.windows
ansible-galaxy collection install ansible.windows
Установка Packer.
Необходимо установить Packer по инструкции с официального сайта https://learn.hashicorp.com/tutorials/packer/get-started-install-cli
Установка Yandex.Cloud CLI
https://cloud.yandex.com/en/docs/cli/quickstart#install
curl https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash
Загружаем обновленные настройки .bashrc без выхода из системы
Инициализация Yandex.Cloud CLI
Клонируем репозиторий с исходным кодом
git clone https://github.com/patsevanton/packer-windows-with-update-ansible-yandex-cloud.git
cd packer-windows-with-update-ansible-yandex-cloud
Скачиваем ConfigureRemotingForAnsible.ps1
wget https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1
Создайте сервисный аккаунт и передайте его идентификатор в переменную окружения, выполнив команды
yc iam service-account create --name <имя пользователя>
yc iam key create --service-account-name <имя пользователя> -o service-account.json
SERVICE_ACCOUNT_ID=$(yc iam service-account get --name <имя пользователя> --format json | jq -r .id)
В документации к Yandex Cloud параметр folder_id описывается как <имя_каталога>.
Получите folder_id из yc config list
Назначьте сервисному аккаунту роль admin в каталоге, где будут выполняться операции:
yc resource-manager folder add-access-binding <folder_id> --role admin --subject serviceAccount:$SERVICE_ACCOUNT_ID
Заполняем файл credentials.json.
"folder_id": "<folder_id>",
"password": "<Пароль для Windows>"
Заполняем credentials.json
Запускаем сборку образа
packer build -var-file credentials.json windows-ansible.json
Готовый образ можно будет найти в сервисе Compute Cloud на вкладке Образы.
Через Yandex Cloud CLI будет виден вот так.
yc compute image list
+----------------------+-------------------------------------+--------+----------------------+--------+
| ID | NAME | FAMILY | PRODUCT IDS | STATUS |
+----------------------+-------------------------------------+--------+----------------------+--------+
| fd88ak25ivc8rn1e4bn7 | windows-server-2021-09-20t04-47-57z | | f2e01pla7dr1fpbeihp9 | READY |
+----------------------+-------------------------------------+--------+----------------------+--------+
Описание кода в user-data
При сборке образа сначала выполняется скрипты, описанные в user-data:
Установка пароля пользователя Administrator
net user Administrator {{user `password`}}
Удаление скриптов из директории C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\
ls \"C:\\Program Files\\Cloudbase Solutions\\Cloudbase-Init\\LocalScripts\" | rm
Удаляет доверенные хосты службы WS-Management по адресу \Localhost\listener\listener*
Remove-Item -Path WSMan:\\Localhost\\listener\\listener* -Recurse
Удаляет сертификаты с локального сервера
Remove-Item -Path Cert:\\LocalMachine\\My\\*
Получает DNS имя из службы метаданных
$DnsName = Invoke-RestMethod -Headers @{\"Metadata-Flavor\"=\"Google\"} \"http://169.254.169.254/computeMetadata/v1/instance/hostname\"
Получает hostname имя из службы метаданных
$HostName = Invoke-RestMethod -Headers @{\"Metadata-Flavor\"=\"Google\"} \"http://169.254.169.254/computeMetadata/v1/instance/name\"
Получает сертификат из службы метаданных
$Certificate = New-SelfSignedCertificate -CertStoreLocation Cert:\\LocalMachine\\My -DnsName $DnsName -Subject $HostName
Создает новое значение HTTP
в службе WS-Management по адресу \LocalHost\Listener c параметром Address *
New-Item -Path WSMan:\\LocalHost\\Listener -Transport HTTP -Address * -Force
Создает новое значение HTTPS
в службе WS-Management по адресу \LocalHost\Listener c параметром Address *
, HostName и Certificate
New-Item -Path WSMan:\\LocalHost\\Listener -Transport HTTPS -Address * -Force -HostName $HostName -CertificateThumbPrint $Certificate.Thumbprint
Добавляет в firewall правило разрешающее трафик на порт 5986
netsh advfirewall firewall add rule name=\"WINRM-HTTPS-In-TCP\" protocol=TCP dir=in localport=5986 action=allow profile=any
Тестирование и отладка
Для отладки запускаем packer с опцией debug
packer build -debug -var-file credentials.json windows-ansible.json
Но так как опция -debug
требует потверждения на каждый шаг, для отладки добавляем конструкцию после шага, который нужно отладить, например, после запуска ansible.
{
"type": "shell",
"inline": [
"sleep 9999999"
]
},
Отредактируем файл ansible/inventory. Проверим win_ping.
ansible windows -i ansible/test-inventory -m win_ping
Тестируем установку обновлений Windows без Packer
ansible-playbook -i ansible/test-inventory ansible/playbook.yml
Ошибки
Если не запустить ConfigureRemotingForAnsible.ps1 на Windows, то будет такая ошибка
basic: the specified credentials were rejected by the server
Если забыли установить «use_proxy» в false, то будет такая ошибка
basic: HTTPSConnectionPool(host=''127.0.0.1'', port=5986): Max retries exceeded with url: /wsman (Caused by NewConnectionError(''<urllib3.connection.VerifiedHTTPSConnection object at 0x7f555c2d07c0>: Failed to establish a new connection: [Errno 111] Connection refused''))
Если в таске Ensure the local user Administrator has the password specified for TEST\Administrator
будет ошибка
requests.exceptions.HTTPError: 401 Client Error: for url: https://xxx:5986/wsman
...
winrm.exceptions.InvalidCredentialsError: the specified credentials were rejected by the server
То вы забыли синхронизировать пароли в переменных pdc_administrator_password
и ansible_password
Временный ansible inventory с именем /tmp/packer-provisioner-ansiblexxxx будет иметь вот такой вид:
default ansible_host=xxx.xxx.xxx.xxx ansible_connection=winrm ansible_winrm_transport=basic ansible_shell_type=powershell ansible_user=Administrator ansible_port=5986
Тестирование сборки Windows c Active Directory
Так же тестировал сборку Windows c Active Directory, используя Galaxy роль justin_p.pdc
, но при запуске нового instance из собранного образа получал ошибку.
2021-09-18 19:34:31, Error SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing 'CryptoSysPrep_Specialize' from C:\Windows\system32\capisp.dll; dwRet = 0x32
2021-09-18 19:34:31, Error SYSPRP SysprepSession::ExecuteAction: Failed during sysprepModule operation; dwRet = 0x32
2021-09-18 19:34:31, Error SYSPRP SysprepSession::ExecuteInternal: Error in executing action for Microsoft-Windows-Cryptography; dwRet = 0x32
2021-09-18 19:34:31, Error SYSPRP SysprepSession::Execute: Error in executing actions from C:\Windows\System32\Sysprep\ActionFiles\Specialize. xml; dwRet = 0x32
2021-09-18 19:34:31, Error SYSPRP RunPlatformActions:Failed while executing Sysprep session actions; dwRet = 0x32
2021-09-18 19:34:31, Error [0x060435] IBS Callback_Specialize: An error occurred while either deciding if we need to specialize or while specializing; dwRet = 0x32
Рынок облачных вычислений продолжает стабильный рост. По прогнозам Gartner, расходы на облачные сервисы вырастут на 18% в 2021 году. Компания TrueConf не отстаёт от ведущих трендов и предоставляет решения, отвечающие современным запросам. Наш флагман TrueConf Server поддерживает полноценную работу в том числе и в облачной среде.
В данной статье мы расскажем, как создать виртуальную машину в облачном сервисе Yandex Cloud для последующего развёртывания на ней TrueConf Server. Также вы можете воспользоваться услугами других провайдеров, например VK Cloud Solutions или Sber Cloud.
Пример развёртывания TrueConf Server на виртуальной машине на базе ОС Linux вы можете найти в соответствующей статье.
Подбор виртуальной машины
Для начала необходимо определиться с конфигурацией виртуальной машины (ВМ).
Виртуальная машина на основе рекомендуемых системных требований позволяет проводить конференции с количеством участников:
- до 400 в конференциях любого типа, подключенных через приложения TrueConf;
- до 200 WebRTC участников в ролевых конференциях (до 36 отображаемых WebRTC участников в конференциях любого типа);
- до 100 SIP/H.323 терминалов в ролевых конференциях (до 20 SIP/H.323 терминалов, отображаемых в одной конференции любого типа).
Воспользовавшись калькулятором Yandex Cloud, можно рассчитать приблизительную стоимость конфигурации. Непосредственно при создании машины вы сможете выбрать подходящую версию ОС и модель оплаты (фиксированная сумма в месяц или оплата за время работы ВМ).
Обратите внимание, что в списке ОС версии виртуальной машины на базе Windows Server называются “Kosmos VM на базе Windows Server Datacenter”, например, для Windows Server 2016.
Характеристики виртуальной машины
Операционная система | Kosmos VM на базе Windows Server Datacenter 2016 | 5 529,60 ₽ |
Платформа | Intel Broadwell | |
Гарантированная доля vCPU | 100% | |
Количество vCPU | 8 | 6 451,20 ₽ |
Объём RAM | 16 ГБ | 4 492,80 ₽ |
Диск | SSD 50 ГБ | 595,50 ₽ |
Прерываемая ВМ | Нет | |
Публичный IP-адрес | Да | 172,80 ₽ |
Исходящий трафик* | 2 ТБ (2048 ГБ) | 2 980,44 ₽ |
Цена в месяц (включая НДС)** | 20 222,34 ₽ |
* Объём трафика рассчитан исходя из среднемесячной нагрузки TrueConf Server на 100 пользователей. Он может меняться в зависимости от активности пользователей. Весь входящий трафик и исходящий трафик объемом до 10 ГБ не тарифицируется.
** Стоимость услуг указана в ознакомительных целях, актуальна на ноябрь 2024 года и может измениться в зависимости от тарифной политики облачного провайдера или различий в конфигурации виртуальной машины.
Предварительная подготовка
Для того, чтобы воспользоваться сервисами Yandex Cloud вам необходимо:
- Зарегистрироваться, обязательно привязав свой номер телефона к аккаунту.
- Добавить платёжный аккаунт.
- Зачислить средства на баланс лицевого счёта.
Создание виртуальной машины
Консоль управления Yandex Cloud
После создания виртуальной машины некоторое время она может находиться в статусе PROVISIONING. Это означает, что в настоящее время облако выделяет данной ВМ ресурсы. После выделения ресурсов статус изменится на RUNNING.
Подключение к виртуальной машине
Чтобы подключится к виртуальной машине, нажмите комбинацию клавиш Win+R, в открывшемся окне введите mstsc.exe и нажмите ОК.
Откроется окно подключения к удалённому рабочему столу. Введите публичный IP-адрес (указан для конкретной ВМ в поле Публичный IPv4 консоли управления) и нажмите Подключить.
В открывшемся окне введите данные для подключения:
- логин: Administrator
- пароль: пароль администратора, который вы указали при создании ВМ.
При выводе предупреждения о неудачной проверке подлинности поставьте флажок в поле Больше не выводить запрос о подключениях к этому компьютеру и нажмите Да.
После этого откроется окно с рабочим столом сервера.
Развёртывание TrueConf Server на виртуальной машине Yandex Cloud аналогично развёртыванию на физическом сервере. В случае возникновения затруднений вам помогут наши инструкции:
- Установка TrueConf Server
- Настройка HTTPS
- Какие порты используются при работе TrueConf Server.