Как распространять сценарии powershell среди членов команды?
Я работаю с кучей разработчиков программного обеспечения, у меня есть несколько удобных сценариев PowerShell для автоматизации сборки / развертывания и т. Д.... Я бы хотел, чтобы все мои коллеги по работе могли устанавливать и использовать эти сценарии. Было бы хорошо, если бы они получали автоматические обновления, когда я добавляю больше функций / исправляю ошибки.
Это частные сценарии, которые не нужно публиковать на месте, например https://www.powershellgallery.com/
Сегодня каждый разработчик в нашей команде загружает эти сценарии из репозитория git и добавляет эту папку в $path
, В этой папке есть файл.bat, который открывает консоль PowerShell. В этой консоли они могут получить помощь и вызвать различные доступные команды. Сегодня им нужно вызвать команду, которая извлекает последние данные из репо.
Я чувствую, что должно быть что-то лучше этого, я ищу что-то вроде глобальных инструментов dotnet для сценариев PowerShell.
1 ответ
Что касается этого...
Это частные сценарии, которые не нужно публиковать на месте
.. затем построить свой собственный на прем репо.
Как это сделать, полностью задокументировано 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-репозиториям, которые размещены на вашем сервере.
Обновление для ОП
Что касается вашего продолжения:
Когда у меня будут файлы на их локальном компьютере, как они будут перенесены в их текущий сеанс PowerShell?
Помните, что Import-Module - это загружаемые модули, которые уже находятся на вашем локальном компьютере, а не модули из любого локального или удаленного репо. Вам все еще нужно установить модуль из любого репо, на который вы нацелены.
Если ваш модуль правильно определен и установлен на локальном компьютере, если вы используете PowerShell v3 и выше, модуль Import-Module не требуется, так как при правильной разработке и реализации он должен автоматически загружаться.
В частности, ваш следующий вопрос является дубликатом этих вопросов и ответов. Как установить / обновить модуль PowerShell из локальной папки - настроить внутренний репозиторий модулей.
Вам просто нужно сделать обычные шаги, чтобы получить и использовать модуль из вашего репозитория.
Find-Module -Name 'MyModule' -Repository MyRepository |
Save-Module -Path "$env:USERPROFILE\Documents\WindowsPowerShell\Modules"
Install-Module -Name 'MyModule'
Import-Module -Name 'MyModule'
Смотрите также: