objectivityltd / psci Goto Github PK
View Code? Open in Web Editor NEWPowershell Continuous Integration and Deployment Automation library (Configuration as Code, Powershell DSC)
License: MIT License
Powershell Continuous Integration and Deployment Automation library (Configuration as Code, Powershell DSC)
License: MIT License
We need to be able to prevent two concurrent deployments on the same machine (configurable by user).
Currently every configuration is deployed when deployment runs.
If we're able to calculate a hash for each module in the package and store it in a file, we could use the file to deploy the module only if it changes.
There is a new version of msbuild, the 15.0. I'm just wondering how to update the Get-MSBuildPath and I'm thinking about using https://github.com/microsoft/vssetup.powershell.
Do you think it is a good idea? How to declare such dependency to external module?
Currently xWebAdministration has been modified - new resources with 'c' prefix should be created instead.
Currently when we want to deploy MsDeploy package, we need to configure MsDeploy on remote host, and run a custom function with invocation of Deploy-WebPackage. Instead, we should be able to do it purely from DSC (which would download the package and replace tokens in configuration files).
Starting with version 9.0.0, the xPSDesiredStateConfiguration module renamed some DSCResources. After that, the custom cTeamcity module stopped working because it requires MSFT
\dsc\custom\cTeamcity\DscResources\OBJ_cTeamcityAgent\OBJ_cTeamcityAgent.schema.psm1
82) "Import-DSCResource -Module xPSDesiredStateConfiguration -Name MSFT_xServiceResource"
it must be DSC_xServiceResource
Sometimes following error is logged instead of proper log message:
(Start-ExternalProcess.ps1/Write-EventsToLog/335) Couldn't get events: Collection was modified; enumeration operation may not execute.
Need to use .NET / 7-zip if possible, instead of Shell.
As MS recently moved to github, we should too.
For example xWebsite: 'Cannot create a file when that file already exists' - probably means 'Cannot start website because binding is already assigned to another website'
Currently when two deploys run remotely on the same node, a problem can occur during extraction - we should be able to specify that we want to copy PSCI to auto-generated path.
File Start-DscConfigurationWithRetries.ps1 contains a string:
"[string[]]$rebootServerCoincidences = Select-String -Pattern 'reboot is required' -Path $dscResPathTmp"
In a system with a different localization, the output is in a different language. The pattern does not work. I have to add a 'reboot is required|требуется перезагрузка' to solve
On the local computer installed ru-RU localization. At the remote computer i have en-us.
I run ServerRole with the -runremotely parameter and get the error:
Write-ErrorRecord: [Start-DeploymentByPSRemoting.ps1 // 188] [WindowsPackageCab.psm1 / Import-LocalizedData / 19] Cannot find the Windows PowerShell data file
owerShell \ v1.0 \ Modules \ PSDesiredStateConfiguration \ DSCClassResources \ WindowsPackageCab \ ru-RU \ ', or directories
I solved the problem by transferring from the local computer to the remote directory C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules \ PSDesiredStateConfiguration \ DSCClassResources \ WindowsPackageCab \ ru-RU
Please tell me a better solution.
Currently logging from SSDT is not real-time. We could try one of the following:
http://pwndizzle.blogspot.com/2013/12/powershell-threading.html
http://www.get-blog.com/?p=189
https://github.com/nightroman/SplitPipeline
And ideally leave the functions as they are (in case user does not want to use DSC).
Hi,
I was trying to run simple build task on Windows 10. Unfortunately there is error with executing command. Are you aware of this issue. I suppose this is error related to Windows 10 this same code executed on Win8 runs without any errors.
[I] 2016-02-02 18:17:37 [ServerName/username]: (Build-MsBuild.ps1/Build-MsBuild/120) Building package 'ProjectName'. [I] 2016-02-02 18:17:37 [ServerName/username]: (Invoke-ExternalCommand.ps1/Invoke-ExternalCommand/134) Running external command: "C:\Program Files (x86)\MSBuild\14.0\bin\amd64\msbuild.exe" "C:\Users\username\Projects\ProjectName\ProjectName.sln" /p:Configuration="Release" /p:DeployOnBuild="True" /p:DeployTarget="Package" /p:AutoParameterizationWebConfigConnectionStrings="false" /p:PackageLocation="C:\Users\username\Projects\ProjectName\bin\ProjectName\ProjectName.zip" /nologo /maxcpucount /nodeReuse:false '""C:\Program' is not recognized as an internal or external command, operable program or batch file. [E] 2016-02-02 18:17:37 [ServerName/username]: (Invoke-ExternalCommand.ps1//239) External command failed with exit code '1'.
Try to reproduce very quick start how described in https://github.com/ObjectivityLtd/PSCI/wiki/Getting-started#very-quick-start---without-config-files
Remove-Module PPoShSqlTools,PPoShTools -EA 0
New-Item c:\projects\psci -ItemType Directory -Force
Set-Location C:\projects\psci\
git clone https://github.com/ObjectivityBSS/PSCI.git
Import-Module .\PSCI\PSCI\PSCI.psd1 -Force
Like that:
cAppPool
File WebsiteDir
cWebsite
cIISWebsiteAuthentication Windows
cIISWebsiteAuthentication Anonymous
if ($WebApplicationName) {
File WebApplicationDir
cWebApplication
}
Due to usage of New-SelfSignedCertificate function.
Currently in order to validate that deployment is successful, a new server role needs to be created, plus there isn't anything in PSCI that makes writing validations easier.
This would be useful in order to be able to override ServerConnections in given Step (for more complex scenarios).
Sometimes we don't want an environment to be based on Default (e.g. for Live).
We could parse configuration files (e.g. configuration.ps1) before deployment and ensure each $Tokens reference is valid.
Currently there is lot of copy-paste when there are two similar configurations (e.g. Web provision and Services provision - only $Tokens are different).
In order to make sure we don't run unwanted deployment to Live, we need to double-check everything.
Currently new log replaces the old one - the old one should be renamed instead.
Currently we need to write ServerRole Web -ServerConnections WebServer - could we just apply convention? (search ServerConnections with name = Web or WebServer)
Currently when we want to store passwords we need to have a separate tokens file and protect it using VCS mechanisms. Should add a mechanism to encrypt/decrypt token files, possibly basing on convention (e.g. tokens.sensitive.ps1), and possibly using git hooks for automatic encryption/decryption on pull/push.
Investigate possibility of enabling ISE's Intellisense for Tokens (or alternatively extend PsISEProjectExplorer).
Set-TargetResource is invoked and ends successfully even though following error is reported:
dism /online /enable-feature -featurename:IIS-ASPNET45
Deployment Image Servicing and Management tool
Version: 6.3.9600.17031
Image Version: 6.3.9600.17031
Enabling feature(s)
[==========================100.0%==========================]
Error: 50
The operation is complete but IIS-ASPNET45 feature was not enabled.
A required parent feature may not be enabled. You can use the /enable-feature /a
ll option to automatically enable each parent feature from the following list. I
f the parent feature(s) are already enabled, refer to the log file for further d
iagnostics.
IIS-NetFxExtensibility45
The DISM log file can be found at C:\Windows\Logs\DISM\dism.log
dism /online /enable-feature /featurename:IIS-ASPNET45 /all
Deployment Image Servicing and Management tool
Version: 6.3.9600.17031
Image Version: 6.3.9600.17031
Enabling feature(s)
[==========================100.0%==========================]
The operation completed successfully.
Checkpoints should be able to decrease local deployment times (especially when error occurs).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.