Подготовить окружение
Запусти PowerShell от имени администратора и выполни:
Install-WindowsFeature Containers
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Restart-Computer
Скачай скрипт установки
Invoke-WebRequest -UseBasicParsing -Uri https://get.mirantis.com/install.ps1 -OutFile install.ps1
Запусти установку
.\install.ps1
Если у тебя установлен MCR или Docker, можно перенести и Docker data-root на D:, чтобы и контейнеры, и образы не занимали диск C:.
Создай файл, если он отсутствуе:
C:\ProgramData\docker\config\daemon.json
Добавь или измени:
{
"data-root": "D:\\docker"
}
Затем:
Restart-Service docker
После проверь root Dir Для Docker
docker info | Select-String "Docker Root Dir"
Положи файл лицензии
docker.lic(если называется иначе, нужно переименовать) в директорию(корень) установки docker D:/Docker
Перезапусти Docker
Restart-Service docker
Проверь
docker info | Select-String "License"
Выключи IIS, так для PAW необходимы открытые порты 80\443
Перейди в папку:
cd D:\PAW
Expand-Archive "E:\PAW_214\ipa_workspace_win_2019_2.1.14.258.zip" -DestinationPath "E:\PAW"
Запусти конфигуратор:
.\Start.ps1
При первом запуске он создаст все контейнеры в D:\PAW\data (или в папке, которую ты указал).
После установки открой в браузере:
http://<hostname>
Если PAW открывается — установка прошла успешно и все данные хранятся на D:.
Если контейнер монтирует папки с хоста (например, E:\PAW\config), то процесс Docker должен иметь права на чтение и запись.
✅ Универсальный способ:
icacls "E:\PAW" /grant "Everyone:(OI)(CI)F" /T
Если нужно аккуратнее — можно выдать только Docker-демону:
icacls "E:\PAW" /grant "NT AUTHORITY\SYSTEM:(OI)(CI)F" /T
Если происходят ошибки при запуске process_certs.ps1
то измените в скрипте эту строку, добавив powershell.exe после docker exec process_certs
$result = exec { docker exec process_certs powershell.exe keytool -importcert -noprompt -alias `"$certfile.BaseName`" -storepass "changeit" -storetype jks -keystore /config/cacerts -file `"C:\config\certs\$certfile`" }
PS C:\java> keytool -importcert -noprompt -alias `"d005.BaseName`" -storepass "changeit" -storetype jks -keystore `"C:\config\cacerts`" -file `"C:\config\certs\DEFRAPAIBMD005.ONETAKEDA.COM.cer`"
PS C:\java> keytool -importcert -noprompt -alias `"applixca.BaseName`" -storepass "changeit" -storetype jks -keystore `"C:\config\cacerts`" -file `"C:\config\certs\applixca.pem`"
PS C:\java> keytool -importcert -noprompt -alias `"ibmtm1.BaseName`" -storepass "changeit" -storetype jks -keystore `"C:\config\cacerts`" -file `"C:\config\certs\ibmtm1.pem`"
PS C:\java> keytool -importcert -noprompt -alias `"intermadiate.BaseName`" -storepass "changeit" -storetype jks -keystore `"C:\config\cacerts`" -file `"C:\config\certs\Intermediate.cer`"
PS C:\java> keytool -importcert -noprompt -alias `"root.BaseName`" -storepass "changeit" -storetype jks -keystore `"C:\config\cacerts`" -file `"C:\config\certs\Onetakeda_Root.cer`"
PS C:\java> keytool -importcert -noprompt -alias `"tm1ca.BaseName`" -storepass "changeit" -storetype jks -keystore `"C:\config\cacerts`" -file `"C:\config\certs\tm1ca_v2.pem`"
sudo su
cd /data/tools/
./backup.sh
docker stack rm paw
docker stack rm paw_image_pull
docker stack rm paw_registry
docker secret rm $(docker secret ls -f name=pa_ -q)
docker config rm $(docker config ls -f name=pa_ -q)
docker container prune (run on all nodes)
docker rmi $(docker images -a -q) (run on all nodes)
docker volume prune (run on all nodes)
docker volume rm $(docker volume ls -q) (run on all nodes)
Check if all are deleted
docker ps,docker image ls,docker volume ls
Unzip pa_workspace_local_dist_2.0.89.228.zip
./start.sh
Accept--ok--validate--update--ok
Ctl+C
Restore backup of content
Cd tools/
```bash
./restore.sh /data/tools/backup/backup_2024_09_20_06_18_30
./start.sh
docker service rm paw_prism-platform paw_pa-predict paw_monitor paw_wa-proxy paw_tm1proxy paw_pa-gateway paw_prism-proxy paw_share-app
If the above command does not work then use
docker service
rm -f paw_prism-platform paw_pa-predict paw_monitor paw_wa-proxy paw_tm1proxy paw_pa-gateway paw_prism-proxy
docker secret ls
docker secret rm pa_gateway_pem pa_paw_cookie_secret_key pa_paw_credential_store_key
docker config ls
docker config rm pa_cacerts pa_cacerts_pem
export PA_GATEWAY_PEM_FILE=[absolute path to .pem file]
PA_GATEWAY_PEM_FILE="/data/config/paw-xxx.pem"
sh start.sh
db.assets.updateMany({"parent-id": ObjectId("5f186de299328df649bc98b4")}, { $set: {"parent-id": ObjectId("68f6444fb791c0437f4741b7")} });
db.assets.updateMany({"@tenant@": ObjectId("5f186de299328df649bc98aa"), name: { $ne: "root" }}, { $set: {"@tenant@": ObjectId("68f6444eb791c0437f4741ad")} });
db.assets.updateMany({"parent-id": ObjectId("5f186de299328df649bc98b1")}, { $set: {"parent-id": ObjectId("68f6444eb791c0437f4741b4")} });
db.getCollection("assets.generic-json-content").updateMany({name: { $ne: "root" }}, { $set: { "@tenant@": ObjectId("68f6444eb791c0437f4741ad") } });