Как распространять сценарии powershell среди членов команды? - PullRequest
0 голосов
/ 30 апреля 2019

Я работаю с кучей разработчиков программного обеспечения, у меня есть несколько удобных сценариев PowerShell для автоматизации сборки / развертывания и т. Д. ... Я хотел бы, чтобы все мои коллеги по работе могли устанавливать и использовать эти сценарии. Было бы хорошо, если бы они получали автоматические обновления, когда я добавляю больше функций / исправляю ошибки.

Это частные сценарии, которые не хотят публиковать на месте, например https://www.powershellgallery.com/

Сегодня каждый разработчик в нашей команде загружает эти сценарии из репозитория git и добавляет эту папку в $path. В этой папке есть файл .bat, который открывает консоль PowerShell. В этой консоли они могут получить помощь и вызвать различные доступные команды. Сегодня им нужно вызвать команду, которая извлекает последние данные из репо.

Я чувствую, что должно быть что-то лучше этого, я ищу что-то вроде глобальные инструменты dotnet для сценариев powershell.

1 Ответ

0 голосов
/ 01 мая 2019

Что касается этого ...

Это приватные сценарии, и они не хотят публиковаться на месте, как

.., а затем создайте свой собственный на предварительном репо..

Как это сделать, полностью задокументировано Microsoft и другими, как показано здесь:

Настройка внутреннего репозитория PowerShellGet

Powershell: Ваш первый внутренний репозиторий PSScript

# Network share
# The other thing we should have is an empty folder on a network share. This will be the location of our repository. Your users will need to have access to this location if they are going to be loading content from it.


$Path = '\\Server\Share\MyRepository'


# If you just want to experiment with these commands, you can use a local folder for your repository. PowerShellGet does not care where the folder lives.


# Creating the repository
# The first thing we should do is tell PowerShellGet that our $Path is a script repository.

Import-Module PowerShellGet

$repo = @{
    Name = 'MyRepository'
    SourceLocation = $Path
    PublishLocation = $Path
    InstallationPolicy = 'Trusted'
}

Register-PSRepository @repo


# And we are done.

Get-PSRepository

Name         InstallationPolicy SourceLocation
----         ------------------ --------------
MyRepository Trusted            \\Server\Share\MyRepository
PSGallery    Untrusted          https://www.powershellgallery.com/api/v2/


# Other than creating a folder, there is no complicated setup to creating this repository. Just by telling PowerShellGet that the folder is a repository, it will consider it to be one. The one catch is that you need to run this command on each machine to register the repository.

Или установите собственный внутренний сервер Git.

Bonobo Git Server для Windows - это веб-приложение, которое вы можете установить на свойIIS.Он предоставляет простой инструмент управления и доступ к вашим git-репозиториям, которые размещены на вашем сервере.

https://bonobogitserver.com/features

https://bonobogitserver.com/install

Обновление для OP

Что касается ваших последующих действий:

Как только файлы будут храниться на их локальном компьютере, как они будут доставлены вих текущий сеанс powershell?

Помните, что Import-Module - это загружаемые модули, которые уже находятся на вашем локальном компьютере, а не модули из любого локального или удаленного репо.Вам все еще нужно установить модуль из любого репо, на который вы нацелены.

Если ваш модуль правильно определен и установлен на локальном компьютере, если вы используете PowerShell v3 и выше, модуль Import-Module не требуется, так как при правильном проектировании и реализации он должен автоматически загружаться.

В частности, ваш следующий вопрос является дубликатом этого Q & A Как установить / обновить модуль PowerShell из локальной папки - настроить внутренний репозиторий модулей

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

Find-Module -Name 'MyModule' -Repository MyRepository | 
Save-Module -Path "$env:USERPROFILE\Documents\WindowsPowerShell\Modules"

Install-Module -Name 'MyModule'

Import-Module -Name 'MyModule'

См. также:

Модуль обновления

...