All Projects → Masahigo → sitecore-azure-devops

Masahigo / sitecore-azure-devops

Licence: other
Sitecore 8.2u5 DevOps Scripts

Programming Languages

powershell
5483 projects
javascript
184084 projects - #8 most used programming language
C#
18002 projects

Projects that are alternatives of or similar to sitecore-azure-devops

sc ext
Sitecore Extensions is a browser extension which improves user experience inside Sitecore CMS
Stars: ✭ 27 (+80%)
Mutual labels:  gulp, sitecore
gulp-rev-versions-bundle
A bundle that allows symfony to get the version of assets versioned with gulp-rev
Stars: ✭ 13 (-13.33%)
Mutual labels:  gulp
Gulp Html Replace
Replace build blocks in HTML. Like useref but done right.
Stars: ✭ 222 (+1380%)
Mutual labels:  gulp
tfsaggregator
A server side plugin for Team Foundation Server (TFS) and Azure DevOps Server for performing various Work Item related calculations, create new Work Items and Links automatically.
Stars: ✭ 122 (+713.33%)
Mutual labels:  vsts
Generator Chrome Extension Kickstart
Scaffold out a Web Extension http://yeoman.io
Stars: ✭ 232 (+1446.67%)
Mutual labels:  gulp
gulp-rev-delete-original
Delete the original file rewritten by gulp-rev.
Stars: ✭ 28 (+86.67%)
Mutual labels:  gulp
Material Admin
Free Material Admin Template
Stars: ✭ 219 (+1360%)
Mutual labels:  gulp
windows-container
Docker files for various Windows Container build
Stars: ✭ 30 (+100%)
Mutual labels:  msbuild
feweekly
⭐ 前端周刊,让你在前端领域跟上时代的脚步,深度和广度不断精进
Stars: ✭ 34 (+126.67%)
Mutual labels:  gulp
Forward-Framework
A killer WordPress theme framework built using underscores, gulp, sass, bourbon neat, bower & browsersync.
Stars: ✭ 23 (+53.33%)
Mutual labels:  gulp
Weapp Workflow
基于Gulp 的微信小程序前端开发工作流 💯
Stars: ✭ 241 (+1506.67%)
Mutual labels:  gulp
Gab Dissenter Extension
Dissenter.com Browser Extension source code
Stars: ✭ 252 (+1580%)
Mutual labels:  gulp
gulp-upload-qcloud
腾讯云 cos 静态资源上传 gulp 插件
Stars: ✭ 18 (+20%)
Mutual labels:  gulp
Gulp Pug Starter
Frontend development with pleasure. Pug + SCSS version
Stars: ✭ 228 (+1420%)
Mutual labels:  gulp
starter-kit
🏃 A simple and powerful Starter Kit made with Webpack, Gulp 4, Pug and SASS
Stars: ✭ 21 (+40%)
Mutual labels:  gulp
React Zhihu
这是一个模仿知乎界面的简单React demo。这个React demo能让你从零开始学习React,并逐渐掌握React。它包括了一个项目从零到项目完成的整个过程。
Stars: ✭ 219 (+1360%)
Mutual labels:  gulp
sseeeedd
Seed for front-end culture :)
Stars: ✭ 15 (+0%)
Mutual labels:  gulp
gulp-xo
Validate files with XO
Stars: ✭ 37 (+146.67%)
Mutual labels:  gulp
electron-pixijs-typescript
Sample using Electron, Pixi.JS and TypeScript to make a game app that runs on browser and on desktop.
Stars: ✭ 25 (+66.67%)
Mutual labels:  gulp
buildozer
🚜 Build tool which simplify your buildprocess. Built with Gulp.js 🥤
Stars: ✭ 22 (+46.67%)
Mutual labels:  gulp

Sitecore 8.2u5 DevOps Scripts

Disclaimer: This Sample Code is provided for the purpose of illustration only and is not intended to be used in a production environment. Original scripts and instructions were done by Christof Claessens and Katrien De Graeve

Configuring DevOps with VSTS - Please see separte document 'Devops with VSTS guide' for more details on properly setting up VSTS devops flow.

Overview

This package comes with a number of scripts and templates which were designed to facilitate the deployment and devops flow for Sitecore 8.2u5. It's core script components include:

  • deploy.xm1-initial.ps1
  • package-multiproj-solution-for-webdeploy.ps1
  • extract-params.ps1
  • deploy-xm1-continuous.ps1
  • deploy-xm1-continuous-generic.ps1

These make use of two custom-made Sitecore addons:

  • templates\xm\addons\keyvault.json
  • templates\xm\addons\slots.json

Setup

The package is structured in a particular way, so that the scripts can rely on a well-known location to find and call into components of:

  • Sitecore 8.2u5 ARM templates
  • Sitecore 8.2u5 Web Deploy packages
  • Sitecore Azure Toolkit

To indicate what this structure looks like (while avoiding having to distribute Sitecore artifacts), a set of empty dummy files, suffixed with ".COPYINTOHERE" are packaged so to clearly indicate the location of these components.

Before you get started:

  • copy the Sitecore 8.2u5 Web Deploy packages into the ./packages/xM1/ folder
  • copy the Sitecore 8.2u5 ARM templates, as found on GitHub, into the ./templates/ folder
  • copy Sitecore Azure Toolkit 1.1 rev 170804 into the ./toolkit 1.1 rev 170804/ folder

All "*.COPYINTOHERE" files may be safely deleted.

DevOps Flow

Deploying Sitecore 8.2u5 for the first time

To deploy Sitecore for the first time, one will need to provision the Azure resources (Web Apps, Databases, Search, Redis, ...) and deploy onto those the files and data which Sitecore needs to run it's plain vanilla out-of-box "hello-world" experience.

In order to facilitate such first deployment, the script deploy-xm1-initial.ps1 is provided. This can be used like this:

.\deploy-xm1-initial.ps1 -SubscriptionName [SUBSCRIPTION NAME]  -Location [LOCATION] -ResourcePrefix [RESOURCE PREFIX] -SqlServerLogin [SQL LOGIN USER NAME] -PathToSitecoreLicenseFile [LICENSE FILE LOCATION]

This will cause the ./templates/xm/azuredeploy.json template to be executed, instructing it to deploy 2 additional custom addons, called "keyvault" and "slots". This ensures that in addition to the regular Sitecore ARM template that:

  • Azure KeyVault will be provisioned and populated with all usernames and passwords for the deployment
  • there are output parameters recorded for the deployment which can be used to deduct deployment parameters from during devops
  • two additional site slots are provisioned: one for Content Delivery and one for Content Management

Note: Both additional addons are expected by the other scripts to have been deployed.

In the script, both modules are deployed by providing the azuredeploy.json with a value like the following for its modules parameter:

"parameters": {
        ... more params go here ...
        "modules": {
            "value": {
                "items": [
                    {
                        "templateLink": "https://storacctname.blob.core.windows.net/tempsitecore825templates/addons/keyvault.json?sv=..sastoken..",
                        "name": "keyvault",
                        "parameters": {
                            "keyvaultSku": "Standard",
                            "userIdforKeyvault": "37d58ba2-3339-4ed8-baa0-b5843c39ed0b"
                        }
                    },
                    {
                        "templateLink": "https://storacctname.blob.core.windows.net/tempsitecore825templates/addons/slots.json?sv=..sastoken..",
                        "name": "slots",
                        "parameters": {}
                    }
                ]
            }
        }
    }

Deploying customizations to the Sitecore environment after the first time

Any updates to the environment will be deployed towards the preproduction site slots for both CM and CD. This means that for both CM and CD two things need to happen:

  1. a Sitecore baseline installation will need to be deployed to the preproduction slot (without custom code, just the Sitecore files without deploying the dacpacks and sql scripts as these just need to happen the very first time). This baseline deployment will wipe away all content from the preproduction slot
  2. Sitecore customizations will need to be deployed on top of the preproduction slots, overlaying them on top of the baseline instead of wiping all existing files. This is purely deploying incremental on top of what was already in the slot from the baseline.

Extracting parameters for use with Web Deploy

Before step 1 or 2 can happen, one will need to fetch the parameters required for Web Deploy to be able to deploy to the Web Apps for CM and CD. The script called extract-params.ps1 is provided to make this really easy: after all, all information required for a deployment can be found in KeyVault and the output parameters which custom addons took care of. This means that extract-params.ps1 doesn't need to know much more than the resource group towards one wants to deploy:

 .\extract-params.ps1 -SubscriptionName [SUBSCRIPTION NAME] -RGName [NAME OF RESOURCE GROUP] -Location [LOCATION] -PathToSitecoreLicenseFile [PATH TO LICENSE XML]

This creates two files which can be used for executing Web Deploy: "CM.parameters.xml" and "CD.parameters.xml".

Deploying the Sitecore baseline installation on a preproduction slot

Using deploy-xm1-continuous.ps1 one can now pass in one of the parameter.xml files generated by extract-params.ps1 to deploy the basineline Sitecore 8.2u5 package onto the production slot for both CM and CD:

.\deploy-xm1-continuous.ps1 -SubscriptionName [SUBSCRIPTION NAME] -RGName [NAME OF RESOURCE GROUP] -PackageLocation [LOCATION TO SITECORE 8.2 .SCWDP.ZIP PACKAGE] -ParamsFileLocation [LOCATION OF PARAM FILE FOR CM OR CD] -Role [CM or CD] -SkipDbOperations

This will cause the Sitecore baseline installation to wipe the preproduction slot and to deploy onto it all the default out-of-box Sitecore files.

The -SkipDbOperations flag makes sure that there's no separate Web Deploy package required for deploying a Sitecore baseline; rather the flag causes any SQL or DACFX Web Deploy operations to be skipped. So either one uses a custom Sitecore baseline package from which database operations were stripped, or one uses the default Sitecore Web Deploy packages in combination with this flag.

Deploying Sitecore customizations onto the baseline in a preproduction slot

Essentially this is the exact same process. The only difference being that one would point the deploy-xm1-continuous.ps1 script to a custom Web Deploy package in which just the customizations are packaged.

In order to create such custom Web Deploy package, the package-multiproj-solution-for-webdeploy.ps1 can be used, which builds and packages a solution in a way which is understood by deploy-xm1-continuous.ps1.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].