/DscWorkshop

Primary LanguagePowerShell

DSC Workshop Overview

Build Status Last Commit
Develop Build status dev GitHub last commit
Master Build status GitHub last commit

GitHub issues

Remember to charge your laptop before the workshop!

If the build fails, please download the latest version of AutomatedLab and pull the repository again

Goal:

  • Introduce the Release Pipeline Model with one possible implementation using DSC
  • Use the code to setup a lab environment at work/home and learn how to roll your own DSC Pipeline
  • Share our experiences of rolling out DSC in production environments within highly regulated industries

Overview:

  1. Introduction
  2. AutomatedLab and Existing Infrastructure
  3. The Release Pipeline, and how to apply to your infrastructure
  4. Building a trusted release process
  5. Bringing Existing Infrastructure under DSC Control, with Datum

Before you start

The best way to follow along is to get your Git and Github setup.

1. Fork the AutomatedLab/DscWorkshop project

Once logged into Github, fork the following repository: https://github.com/AutomatedLab/DscWorkshop by clicking on the FORK button on the right of the page.

This will create a fork under your name: i.e. https://github.com/<your github handle>/DscWorkshop

Where you will be able to push your changes.

2. Git clone your fork locally

Now that you have it under your name, you can clone your fork onto your laptop.

In your Github page you can use the green button 'Clone or Download' on your forked Github page https://github.com/<your github handle>/DscWorkshop.git

Or use the following command in your command line:

git clone https://github.com/<your github handle>/DscWorkshop.git

3. Set up your laptop

You need Git in your path, a permissive ExecutionPolicy set so you can run scripts, and internet access so you can pull from the gallery.

Run the following as administrator:

Set-ExecutionPolicy -ExecutionPolicy Bypass
Install-Module Chocolatey
Install-ChocolateySoftware
Install-ChocolateyPackage git
Install-ChocolateyPackage VisualStudioCode
# Setting up Machine level Path environment variable (for persistence)
[Environment]::SetEnvironmentVariable('Path',($Env:Path + ';' + 'C:\Program Files\Git\bin'),'Machine')
# Setting up Process level variable
[Environment]::SetEnvironmentVariable('Path',($Env:Path + ';' + 'C:\Program Files\Git\bin'),'Process')

Should you want to work with the AutomatedLab part, pull their dependencies listed here.

For Building DSC Artefacts and composing your configurations, you should be all set.


How to follow along with this lab

You can do any of the following:

  • Follow the lab, setting up your lab VMs with AutomatedLab. Deploying required services (AD, SQL, TFS...) allows you to experiment with the typical infrastructure

  • Only play with the DSC Pipeline locally on your machine, creating roles, nodes, and compiling artefacts.

  • Browse the code and ask questions

There will be a few slides to introduce concepts, share our tips and tricks, and loads of Q&A, so you can work with others to progress faster!

Make it your own.

Next Steps

  1. AutomatedLab's DscWorkshop Lab
  2. Building DSC Artefacts