{"id":13215,"date":"2017-04-28T07:49:41","date_gmt":"2017-04-28T15:49:41","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/powershell\/?p=13215"},"modified":"2021-09-15T12:12:46","modified_gmt":"2021-09-15T20:12:46","slug":"dsc-configuration-sharing","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/powershell\/dsc-configuration-sharing\/","title":{"rendered":"DSC Configuration Sharing"},"content":{"rendered":"<p>The community around DSC Resources has been inspiring. The PowerShell Gallery now includes more\u00a0than 2000 modules\/scripts. 181 of those are modules focused on DSC, that collectively include\u00a0<strong>766 DSC Resources<\/strong>.<\/p>\n<p>With this many building blocks available, it has become easier and faster to get a DSC project through the proof of concept phase to production-ready Windows Servers built using Configuration As Code.<\/p>\n<p>When the author is new to DSC, their first configuration is a complex\u00a0learning experience. The modules containing DSC Resources often have an \/Examples folder with\u00a0Configuration scripts showing how to use Resources, but\u00a0they tend to be very specific and demonstrate only the functionality that the Resource was intended to solve. It can be hard to envision an <strong>end-to-end scenario-based Configuration<\/strong>. That typically comes later in the maturity\u00a0model of learning DSC.<\/p>\n<p>So how can we simplify and go faster? We&#8217;ve already seen that the community is very good at\u00a0empowering people to be successful. Sharing examples helps\u00a0people to look at existing work and identify patterns that can be repeated.<\/p>\n<h2>A community repo for DSC Configurations<\/h2>\n<p>Last week at the <a href=\"http:\/\/ams2017.com\" target=\"_blank\" rel=\"noopener\">Automation Management Summit 2017<\/a>, I previewed a new set of\u00a0project repositories on GitHub. The goal of this work is to document a process for sharing\u00a0end-to-end scenario-based Configurations.<\/p>\n<p>Here is where to get started:\n<a href=\"https:\/\/github.com\/powershell\/dscconfigurations\" target=\"_blank\" rel=\"noopener\">http:\/\/github.com\/powershell\/dscconfigurations<\/a><\/p>\n<p>This project includes three individual repos:<\/p>\n<ul>\n<li>DSC Configurations\n<ul>\n<li>DSC Configuration Template<\/li>\n<li>DSC Configuration Tests<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>The goal of these is to provide guidance and tools to <em>reduce the mean time to minimum viable\u00a0product by iterating quickly<\/em>. This was a key point of feedback at least year&#8217;s <a href=\"https:\/\/www.eventbrite.com\/e\/devopsdsc-camp-2017-tickets-31137067808\" target=\"_blank\" rel=\"noopener\">DSC Camp<\/a>. The Template repo provides\u00a0an example of how to layout a Configuration project. The Tests repo provides an automated solution\u00a0to validate a Configuration script using Azure Automation and Azure Virtual Machines.<\/p>\n<p>You will find the documentation in the submodules is still light to non-existant. I will be\u00a0contributing to these as much as possible. In the mean time the community is welcome to submit\u00a0Issues and PR&#8217;s to get things moving along more quickly. See the DSC <a href=\"https:\/\/github.com\/PowerShell\/DscResources\/blob\/master\/CONTRIBUTING.md\" target=\"_blank\" rel=\"noopener\">Contribution Guidelines<\/a>\u00a0for more information.<\/p>\n<h2>Process change in the publishing model<\/h2>\n<p>I&#8217;d like to finish by pointing out an important change in process. With the DSC Resource Kit, today\u00a0we follow a <a href=\"https:\/\/github.com\/PowerShell\/DscResources\/blob\/master\/NewResourceModuleSubmissions.md\" target=\"_blank\" rel=\"noopener\">model<\/a> where modules are authored and then handed off to the PowerShell team to be hosted in a <a href=\"https:\/\/github.com\/powershell\/dscresources\" target=\"_blank\" rel=\"noopener\">central repository<\/a>, and then\u00a0published to the <a href=\"http:\/\/powershellgallery.com\" target=\"_blank\" rel=\"noopener\">PowerShell Gallery<\/a>. We are finding that in this\u00a0model, we can actually become the bottleneck to release because it can be impossible to match pace\u00a0with the throughput of so many people doing great authoring work in the community.<\/p>\n<p>So with that in mind, the process for Configuration sharing will be that that the author should\u00a0continue to host their code in a repo they own. Just like for Resources, they will continue to be the project maintainer. This is only a change to where the code is located on GitHub. Also just like\u00a0Resources, the author can submit a request to the community for feedback and discuss their work in\u00a0the monthly <a href=\"https:\/\/github.com\/powershell\/dscresources#questions-comments-concerns\" target=\"_blank\" rel=\"noopener\">DSC Community Call<\/a>.\u00a0The end result of their work will still be to publish in the PowerShell Gallery. Additional details\u00a0such as how to package Configurations and what tags to use will be documented in the\u00a0DSCConfigurations project repo.<\/p>\n<p>Thank you! I look forward to working together with everyone in the DSC community on DSC Configuration\u00a0sharing.<\/p>\n<p>Michael Greene<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The community around DSC Resources has been inspiring. The PowerShell Gallery now includes more\u00a0than 2000 modules\/scripts. 181 of those are modules focused on DSC, that collectively include\u00a0766 DSC Resources. With this many building blocks available, it has become easier and faster to get a DSC project through the proof of concept phase to production-ready Windows [&hellip;]<\/p>\n","protected":false},"author":658,"featured_media":13641,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-13215","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell"],"acf":[],"blog_post_summary":"<p>The community around DSC Resources has been inspiring. The PowerShell Gallery now includes more\u00a0than 2000 modules\/scripts. 181 of those are modules focused on DSC, that collectively include\u00a0766 DSC Resources. With this many building blocks available, it has become easier and faster to get a DSC project through the proof of concept phase to production-ready Windows [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/13215","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/users\/658"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/comments?post=13215"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/13215\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media\/13641"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media?parent=13215"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/categories?post=13215"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/tags?post=13215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}