Вернуться   Андрей Панько. Заметки про Dynamics NAV > Dynamics NAV (Navision)
Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Dynamics NAV (Navision) Заметки про Dynamics NAV (ранее Navision) и аддон LS Retail

Ответ
 
Опции темы Поиск в этой теме
  #1  
Старый 28.07.2013, 14:27
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
azure + powershell

Так как Microsoft настойчиво продвигает эти две технологии, то чтобы быть в тонусе я поместил Dynamics NAV 2013 в Azure при помощи Powershell.
Про это путешествие можно было прочесть в журнале nav4u.ru:
История одного учебного развертывания Dynamics NAV 2013 в Windows Azure

Несмотря, на небольшие затыки в целом развертывание прошло практически в автоматическом режиме. А ведь с одной стороны интересно как оно работает, с другой - не охота изобретать велосипед.
Я и не стал, просто решил повторить свой путь, но внеся несколько модификаций.
Модификации в действующий продукт, как известно, вносят новые баги и грабли. А разгребание багов и преодоление сложностей - приносит новые знания. Вот этими новыми для меня знаниями я и планирую неспешно делиться в данной ветке (по мере появления...).
Ответить с цитированием
  #2  
Старый 28.07.2013, 14:33
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Для начала по стоимости.
Больше всего денег ушло на вычисления.
Хотя я особо систему не нагружаю, включенная однопроцессорная виртуалка набежала на 650 рублей за две недели.
На этом фоне хранение данных выглядит более чем скромно. около 60 рублей включая транзакции.
Ответить с цитированием
  #3  
Старый 28.07.2013, 14:57
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
По результатам изучения было замечено, что система создает такую структуру как Cloud Service. Т.е. то, к чему можно обращаться извне. Потому как именно у нее есть http адрес, как например http://apanko.cloudapp.net/ (пока можно не заходить, там все равно нет пользовательского интерфейса, и вообще никакого).
Виртуальные машины находятся внутри этого Cloud Service.
Однако создавать его заранее особого смысла нет, это можно сделать в момент создания виртуальной машины.
При этом можно имя виртуальной машины задать одно, а имя Cloud Service - другое (что я и сделал).
Раз коснулись виртуальных машин, то я их сделал две:
Одну на которой планирую хостить Навовские службы, а вторую под SQL.
В обоих случаях выбрал Windows Server 2012 в качестве операционной системы. С SQL правда не стал экспериментировать, ограничился Microsoft SQL Server 2012 Standard Edition.

В меру важный момент - в зависимости от того в каком дата центре вы хотите видеть ваши машины - нужно использовать соответствующий Storage Account.
Я в своем Storage account указал West Europe (Амстердам), и когда пытался поместить виртуалки в Дублин - мне не разрешили использовать существующий storage account и предложили сгенерировать новый.
Таким образом можно сделать вывод, что storage account привязан к датацентру и территории.
Ответить с цитированием
  #4  
Старый 28.07.2013, 15:22
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Кстати датацентров сейчас 6:
  • US North Central – Chicago, IL
  • US South Central – San Antonio, TX
  • West Europe – Amsterdam
  • North Europe – Dublin
  • East Asia – Hong Kong
  • South-East Asia – Singapore
Видео про датацентры:
http://www.youtube.com/watch?v=JJ44h...layer_embedded
Ответить с цитированием
  #5  
Старый 28.07.2013, 23:19
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
В целом дальше я решил действовать через PowerShell, ведь так веселее.
Для этого поступил простым способом, ведь все скрипты уже есть (и как показала практика - они работают) , их надо просто правильно использовать в своих целях.
Тем более изучение каталога Cloud из продуктового DVD показало, что скрипты написаны грамотно и по феншую.

Однако чтобы их использовать надо создавать сессию Powershell и подключать ее к тому, что будешь администрировать.
Для начала я решил администрировать машину с будущим NAV Services, а пока пустую виртуалку под Windows 2012 Datacenter Edition.

Вот к ней и решил создать доступ, для этого завел скрипт ManualFramework.ps1
Код:
clear Set-ExecutionPolicyRemoteSigned $PSScriptRootV2='C:\MYDOC\_NAV\Setup\NAV2013\DVD_BUILD34797\Cloud\Examples\HowTo\' . (Join-Path$PSScriptRootV2'Set-PartnerSettings.ps1') . (Join-Path$PSScriptRootV2'Set-PowerShellEnvironment.ps1') $Session=New-NAVAdminSession-RemoteMachineAddress$NAV_AzureServiceName'.cloudapp.net' ` -AzureServiceName$NAV_AzureServiceName ` -VMAdminUserName$NAV_VMAdminUserName ` -VMAdminPassword$NAV_VMAdminPassword

И с удивлением обнаружил, что он не работает (Раньше подобная конструкция меня не подводила).

Как и сообщал ранее, решил кое-что изменить изысканно.
В частности имя виртуалки, где у меня пданируются НАВ Сервисы, я задал отличное от имени Cloud Service.

Результат не заставил себя ждать, когда я попытался воспользоваться рядом powershell скриптов из поставки.
В частности пришлось поправить:

New-NavAdminSession.ps1 (из DVD_BUILD34797\Cloud\Examples\NAVRemoteAdministrat ion\Misc)
У него теперь новый параметр:
Код:
[parameter(Mandatory=$false)] [string] $VMName,
А также этот параметр используется внутри и передается дальше:
Код:
Install-AzureWinRMCertificate -ServiceName $AzureServiceName -VMName $VMName [int]$currentMemoryLimitPerPSSessionInMB = Get-MaxMemoryPerShellRemotely -ServiceName $AzureServiceName -VMName $VMName -Credential $credential
Ответить с цитированием
  #6  
Старый 28.07.2013, 23:19
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Как легко заметить модификация зацепила еще два скрипта, в том числе Get-MaxMemoryPerShellRemotely.ps1 (DVD_BUILD34797\Cloud\Examples\NAVRemoteAdministra tion\Misc)
Куда также добавил аналогичный параметр
Код:
[parameter(Mandatory=$false, ParameterSetName="AzureService")] [string] $VMName,

И код:
Код:
$winRMconnectionUri = Get-AzureWinRMUri -ServiceName $ServiceName -Name $VMName

Get-AzureWinRMUri - менять не пришлось, это стандартная функция и параметр Name в ней предусмотрен.

Также зацепило скрипт Install-AzureWinRMCertificate.ps1 (из DVD_BUILD34797\Cloud\Examples\NAVRemoteAdministrat ion\Certificates)
У него опять же новый необязательный параметр (да, да я волнуюсь об обратной совместимости скриптов).

Код:
[parameter(Mandatory=$false)] [string] $VMName
Тут я кстати узнал, что параметры должны отделяться запятыми иначе скрипт не работает.

А ниже пример измененного кода в теле функции
Код:
$azureVM = Get-AzureVM -ServiceName $ServiceName -Name $VMName -ErrorAction SilentlyContinue
Кстати тут я не совсем понял, что была у авторов за идея получать ссылку на виртуальную машину через имя сервиса, а не через имя самой виртуальной машины?

Возможно я когда-нибудь это узнаю.

Но вернемся, после модификации мой скрипт с подключением стал выглядеть так:
Код:
clear Set-ExecutionPolicyRemoteSigned $PSScriptRootV2='C:\MYDOC\_NAV\Setup\NAV2013\DVD_BUILD34797\Cloud\Examples\HowTo\' . (Join-Path$PSScriptRootV2'Set-PartnerSettings.ps1') . (Join-Path$PSScriptRootV2'Set-PowerShellEnvironment.ps1') $Session=New-NAVAdminSession-RemoteMachineAddress$NAV_AzureServiceName'.cloudapp.net' ` -AzureServiceName$NAV_AzureServiceName ` -VMName$NAV_NAVServicesMachine ` -VMAdminUserName$NAV_VMAdminUserName ` -VMAdminPassword$NAV_VMAdminPassword

Как видите пришлось добавить параметр $NAV_NAVServicesMachine в настроечный скрипт Set-PartnerSettings-Custom.ps1, чтобы все было также по феншую.

Теперь можно легко и приятно подключаться к облачным ресурсам через Powershell и также легко и приятно их администрировать.
Ответить с цитированием
  #7  
Старый 13.09.2013, 23:25
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Водоворот событий слегка отвлек от исследований,
Зайдя в админку был несколько удивлен:
1. Увеличил лимит для МСДН.
2. Я этот лимит почти съел, осталось 400+ рублей. Завтра счет будет пополнен.
3. Статистика пишет, что в день уходит по 118,5 рублей. Что несколько не так. Видимо был какой-то всплеск активности.
4. Загасил пока две вируталки, оставил, ту что указана в статье nav4u.ru, надо бы правда зайти, посмотреть - работает ли. Доступна ли.
5. Чета дорого процессорное время обходится для малых виртуалок без нагрузки (только одна доступна из-вне). Две другие чисты и невинны.
6. А вот хранить всякие объемы можно. Диски видать не такие дорогие.


Учитывая вышесказанное, есть мнение, что НАВ Сервис запущенный напрямую на Ажуре, и данные на СКЛ Ажур будут очень ничего. А вот виртуальные машины пока меня не порадовали. Надо будет продолжить бенчмаркинг, в том числе финансовый. Любопытно узнать сколько будут стоить машины под нагрузкой.
Ответить с цитированием
  #8  
Старый 18.09.2013, 19:43
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Выяснил:
1. 64 рубля в день, когда осталась одна маленькая виртуалка.
2. погасил случайно не ту, что надо. Починил все назад.
Ответить с цитированием
  #9  
Старый 18.09.2013, 21:07
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Обнаружил на начальном экране Windows 8 странный ярлык с веселой пилой. Щелкнул, так как думал что это NAV 2013 R2 так поставился.
Увидел интересную картинку.

Оказалось это клиент из ClickOnce для Azure (который из статьи на NAV4U), не только запускается, но еще и ярлычок сохраняет.
Миниатюры
Нажмите на изображение для увеличения
Название:  RunApplication.png
Просмотров: 998
Размер:	6.0 Кбайт
ID:	152  
Ответить с цитированием
  #10  
Старый 07.11.2013, 17:17
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Вернемся. Сижу на лабораторке по Ажуру и НАВ 2013 Р2.
В целом изменилось не много поэтому задаю уточнющие вопросы.
В частности была проблема - что у меня не успевал НАВ установиться ну и все.
Я решил проблему тем что по умолчанию машину создал Среднюю (она помощнее), а затем уменьшил. Это можно.


Это был мой workaround.
Уточнил у граждан из МС.
Показали, что у них в скрипте тайм аут задан хардкодом.
NavInstallationTools.psm1 из ProductDVD, строка:
Start-ProcessWithProgress-FilePath$navSetupExe-ArgumentList$argumentList-TimeOutSeconds1200



Хотя говорят у них проблем с малыми машинами не возникало поэтому никто не волновался.
Ответить с цитированием
  #11  
Старый 07.11.2013, 19:50
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Посетил еще одно мероприятие.
Опять все крутилось вокруг Powershell'а.
Показали интересное, базисы конечно.
Например команда Get-Location. Возвращает "объект .NET" хотя и выглядит как обычная строка
Для примера надо воспользоваться кодом:

$MyLoc=Get-Location

$MyLoc.GetType()
Ответить с цитированием
  #12  
Старый 07.11.2013, 19:53
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Далее этим объектом можно оперировать, например использовать как параметр.

Например, так:

Get-NAVServerInstance|Get-NAVApplication

В целом код можно выполнять в два этапа:
Get-NAVServerInstance
Это вернет имя инстанса.
Его (имя можно вручную указать в качестве параметра Get-NAVApplication
А можно как в примере выше.
Есть правда побочный эффект. Вот эта | сработает для всех инстансов (если их несколько).
Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 14:26.

Контакты: e-mail, телефон: +7(926)1805967 - Архив - Вверх

Microsoft Most Valuable Professional
vBulletin v3.5.4, Copyright ©2000-2018, Jelsoft Enterprises Ltd.
Русский перевод: zCarot, Vovan & Co
Права на все материалы, опубликованные на блогофоруме принадлежат Андрею Панько, если в самом материале не указано иное.
Рейтинг@Mail.ru Rambler's Top100