&lt;?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Articles from October 2016 on PowerShell.org - Welcome Automaters!</title><link>https://powershell.org/articles/2016/10/</link><description>Recent content in Articles from October 2016 on PowerShell.org - Welcome Automaters!</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://powershell.org/articles/2016/10/index.xml" rel="self" type="application/rss+xml"/><item><title>PowerShell &amp; DevOps Global Summit 2017 agenda</title><link>https://powershell.org/articles/2016-10-25-powershell-devops-global-summit-2017-agenda/</link><guid>https://powershell.org/articles/2016-10-25-powershell-devops-global-summit-2017-agenda/</guid><pubDate>Tue, 25 Oct 2016 10:00:07 +0000</pubDate><description>&lt;p&gt;The agenda for next year&amp;rsquo;s Summit is almost complete - we&amp;rsquo;ve notified all speakers as to whether their sessions have been accepted or not. If you haven&amp;rsquo;t received your notification please check your spam/junk mail.&lt;br&gt;
We have a small number of sessions yet to publish - mainly around possible focus groups on the Wednesday afternoon.&lt;br&gt;
To view the agenda go to the Summit event site - from &lt;a href="https://powershell.org/summit/"&gt;https://powershell.org/summit/&lt;/a&gt; click on the Brochure and registration link.&lt;br&gt;
Registration opens 1 November 2016.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>The agenda for next year&rsquo;s Summit is almost complete - we&rsquo;ve notified all speakers as to whether their sessions have been accepted or not. If you haven&rsquo;t received your notification please check your spam/junk mail.<br>
We have a small number of sessions yet to publish - mainly around possible focus groups on the Wednesday afternoon.<br>
To view the agenda go to the Summit event site - from<a href="https://powershell.org/summit/">https://powershell.org/summit/</a> click on the Brochure and registration link.<br>
Registration opens 1 November 2016.</p>
]]></content:encoded></item><item><title>Re-Subscribe to New Forums Topic Notifications</title><link>https://powershell.org/articles/2016-10-20-re-subscribe-to-new-forums-topic-notifications/</link><guid>https://powershell.org/articles/2016-10-20-re-subscribe-to-new-forums-topic-notifications/</guid><pubDate>Thu, 20 Oct 2016 23:00:43 +0000</pubDate><description>&lt;p&gt;Hello, PowerShellers!&lt;br&gt;
During our migration and some of the inevitable database resets involved, many of you who were receiving notifications for new forums topics no longer are. You&amp;rsquo;ll need to re-subscribe.&lt;br&gt;
To do so, simply visit the Forums page, click through to the forum(s) of your choice, and poke the &amp;ldquo;Subscribe&amp;rdquo; link that&amp;rsquo;s towards the upper-left-ish of the page. If all you see is an &amp;ldquo;Unsubscribe&amp;rdquo; link, then you&amp;rsquo;re already good to go.&lt;br&gt;
Thanks again for everyone who routinely jumps in to offer friendly, helpful advice in the forums!!!&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Hello, PowerShellers!<br>
During our migration and some of the inevitable database resets involved, many of you who were receiving notifications for new forums topics no longer are. You&rsquo;ll need to re-subscribe.<br>
To do so, simply visit the Forums page, click through to the forum(s) of your choice, and poke the &ldquo;Subscribe&rdquo; link that&rsquo;s towards the upper-left-ish of the page. If all you see is an &ldquo;Unsubscribe&rdquo; link, then you&rsquo;re already good to go.<br>
Thanks again for everyone who routinely jumps in to offer friendly, helpful advice in the forums!!!</p>
]]></content:encoded></item><item><title>Pitfalls of the Pipeline</title><link>https://powershell.org/articles/2016-10-18-pitfalls-of-the-pipeline/</link><guid>https://powershell.org/articles/2016-10-18-pitfalls-of-the-pipeline/</guid><pubDate>Tue, 18 Oct 2016 21:43:10 +0000</pubDate><description>&lt;p&gt;Pipelining is an important concept in PowerShell. Though the idea did not originate with PowerShell (you can find it used decades earlier in Unix, for example), PowerShell does provide the unique advantage of being able to pipeline not just text, but first-class .NET objects.&lt;br&gt;
Pipelining has several advantages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It helps to conserve memory resources. Say you want to modify text in a huge file. Without a pipeline you might read the huge file into memory, modify the appropriate lines, and write the file back out to disk. If it is large enough you might not even have enough memory to read the whole thing.&lt;/li&gt;
&lt;li&gt;It can substantially improve &lt;em&gt;actual&lt;/em&gt; performance. Commands in a pipeline are run concurrently-even if you have only a single processor, because when one process blocks, for example, while reading a large chunk of your file, then another process in the pipeline can do a unit of work in the meantime.&lt;/li&gt;
&lt;li&gt;It can have a significant effect on your end-user experience, enhancing the &lt;em&gt;perceived&lt;/em&gt; performance dramatically. If your end-user executes a sequence of commands that takes 60 seconds, then until 60 seconds has elapsed he/she would see nothing without pipelining, whereas output could start appearing almost immediately with pipelining.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;PowerShell provides a variety of techniques for using pipelining but it is all to easy to do it wrong, so you think you are pipelining but in fact you are not. In my article &lt;a href="https://www.simple-talk.com/sysadmin/powershell/ins-and-outs-of-the-powershell-pipeline/"&gt;Ins and Outs of the PowerShell Pipeline&lt;/a&gt;, I discuss the most common things that can trip you up with implementing pipelining and how to avoid them.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Pipelining is an important concept in PowerShell. Though the idea did not originate with PowerShell (you can find it used decades earlier in Unix, for example), PowerShell does provide the unique advantage of being able to pipeline not just text, but first-class .NET objects.<br>
Pipelining has several advantages:</p><ul><li>It helps to conserve memory resources. Say you want to modify text in a huge file. Without a pipeline you might read the huge file into memory, modify the appropriate lines, and write the file back out to disk. If it is large enough you might not even have enough memory to read the whole thing.</li><li>It can substantially improve<em>actual</em> performance. Commands in a pipeline are run concurrently-even if you have only a single processor, because when one process blocks, for example, while reading a large chunk of your file, then another process in the pipeline can do a unit of work in the meantime.</li><li>It can have a significant effect on your end-user experience, enhancing the<em>perceived</em> performance dramatically. If your end-user executes a sequence of commands that takes 60 seconds, then until 60 seconds has elapsed he/she would see nothing without pipelining, whereas output could start appearing almost immediately with pipelining.</li></ul><p>PowerShell provides a variety of techniques for using pipelining but it is all to easy to do it wrong, so you think you are pipelining but in fact you are not. In my article<a href="https://www.simple-talk.com/sysadmin/powershell/ins-and-outs-of-the-powershell-pipeline/">Ins and Outs of the PowerShell Pipeline</a>, I discuss the most common things that can trip you up with implementing pipelining and how to avoid them.</p>
]]></content:encoded></item><item><title>PowerShell + DevOps Global Summit 2017: Session Acceptance</title><link>https://powershell.org/articles/2016-10-18-powershell-devops-global-summit-2017-session-acceptance/</link><guid>https://powershell.org/articles/2016-10-18-powershell-devops-global-summit-2017-session-acceptance/</guid><pubDate>Tue, 18 Oct 2016 17:53:20 +0000</pubDate><description>&lt;p&gt;We&amp;rsquo;re in the process of emailing speaker invitations to those whose sessions were accepted for the 2017 agenda. **Please check your email and promptly follow the instructions to complete registration. **&lt;br&gt;
In the event that a speaker is unable to confirm their invitation in time, we will move on to other speakers and sessions - that&amp;rsquo;s why, if you haven&amp;rsquo;t presently received an invitation, you still might. Once we&amp;rsquo;ve confirmed everyone, we&amp;rsquo;ll send out notices to any speakers who were not selected, so that you&amp;rsquo;re in the loop. We do appreciate your patience as we work through this process.&lt;br&gt;
Registration will open November 1st, and a &lt;strong&gt;draft&lt;/strong&gt; brochure is available at &lt;a href="http://PowerShellSummit.org"&gt;http://PowerShellSummit.org&lt;/a&gt;. This brochure does include session highlights that may not have been confirmed, so they&amp;rsquo;re still subject to change. The Registration link at PowerShellSummit.org will show you the current confirmed agenda.&lt;br&gt;
For speakers who were regretfully declined, you&amp;rsquo;ll be able to register on November 1st. In the event we have a late speaker dropout - which happens - we may contact you about jumping in as a speaker after all, at which time we&amp;rsquo;ll sort out the finances if you&amp;rsquo;ve paid for your registration, typically offering a full refund of your registration fee.&lt;br&gt;
You&amp;rsquo;ll notice that Summit has become a full 4-day event - we&amp;rsquo;re unsure, at this point, if 3-day passes will be offered or not. We won&amp;rsquo;t make that decision until February 2017, assuming any space remains by that point. So we hope you&amp;rsquo;ll consider joining us for the full 4-day event, including new hands-on experiences on Sunday, a wider variety of deep-dive half-day sessions on Sunday, attendee-driven &amp;ldquo;Side Sessions&amp;rdquo; on Tuesday and Wednesday, and an amazing lineup for Monday.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>We&rsquo;re in the process of emailing speaker invitations to those whose sessions were accepted for the 2017 agenda. **Please check your email and promptly follow the instructions to complete registration. **<br>
In the event that a speaker is unable to confirm their invitation in time, we will move on to other speakers and sessions - that&rsquo;s why, if you haven&rsquo;t presently received an invitation, you still might. Once we&rsquo;ve confirmed everyone, we&rsquo;ll send out notices to any speakers who were not selected, so that you&rsquo;re in the loop. We do appreciate your patience as we work through this process.<br>
Registration will open November 1st, and a <strong>draft</strong> brochure is available at<a href="http://PowerShellSummit.org">http://PowerShellSummit.org</a>. This brochure does include session highlights that may not have been confirmed, so they&rsquo;re still subject to change. The Registration link at PowerShellSummit.org will show you the current confirmed agenda.<br>
For speakers who were regretfully declined, you&rsquo;ll be able to register on November 1st. In the event we have a late speaker dropout - which happens - we may contact you about jumping in as a speaker after all, at which time we&rsquo;ll sort out the finances if you&rsquo;ve paid for your registration, typically offering a full refund of your registration fee.<br>
You&rsquo;ll notice that Summit has become a full 4-day event - we&rsquo;re unsure, at this point, if 3-day passes will be offered or not. We won&rsquo;t make that decision until February 2017, assuming any space remains by that point. So we hope you&rsquo;ll consider joining us for the full 4-day event, including new hands-on experiences on Sunday, a wider variety of deep-dive half-day sessions on Sunday, attendee-driven &ldquo;Side Sessions&rdquo; on Tuesday and Wednesday, and an amazing lineup for Monday.</p>
]]></content:encoded></item><item><title>Be an Azure Consultant for PowerShell.org!</title><link>https://powershell.org/articles/2016-10-14-be-an-azure-consultant-for-powershell-org/</link><guid>https://powershell.org/articles/2016-10-14-be-an-azure-consultant-for-powershell-org/</guid><pubDate>Fri, 14 Oct 2016 22:14:54 +0000</pubDate><description>&lt;p&gt;So, after our nearly-2-day outage, which was due to a still-not-fully-explained Apache fail, we&amp;rsquo;re looking to make some changes. We need to migrate PowerShell.org to a different Azure subscription anyway, so this is a good time to change the kind of service we&amp;rsquo;re using.&lt;br&gt;
First, using Azure is non-negotiable. If your expert opinion is to use something else, please just don&amp;rsquo;t ;). **Update: **This might be changing. AWS could be an option.&lt;br&gt;
Second, our current environment is a classic VM running CentOS 6 (yeah, it&amp;rsquo;s old), WordPress, and MySQL. WordPress and MySQL are also non-negotiable, this isn&amp;rsquo;t about switching CMSs or anything. We use VaultPress for to-the-minute backups, but their restore process is a beast and has never been easy or reliable.&lt;br&gt;
What we WANT is the ability to more or less push a button and re-deploy the entire site from backup, ideally automated through some OMS trigger that senses when the site has crashed.&lt;br&gt;
Now, some caveats.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>So, after our nearly-2-day outage, which was due to a still-not-fully-explained Apache fail, we&rsquo;re looking to make some changes. We need to migrate PowerShell.org to a different Azure subscription anyway, so this is a good time to change the kind of service we&rsquo;re using.<br>
First, using Azure is non-negotiable. If your expert opinion is to use something else, please just don&rsquo;t ;). **Update: **This might be changing. AWS could be an option.<br>
Second, our current environment is a classic VM running CentOS 6 (yeah, it&rsquo;s old), WordPress, and MySQL. WordPress and MySQL are also non-negotiable, this isn&rsquo;t about switching CMSs or anything. We use VaultPress for to-the-minute backups, but their restore process is a beast and has never been easy or reliable.<br>
What we WANT is the ability to more or less push a button and re-deploy the entire site from backup, ideally automated through some OMS trigger that senses when the site has crashed.<br>
Now, some caveats.</p><ul><li>Our budget is $200/mo. We take about 150k-200k visitors per month, and WordPress is a reasonably demanding piece of software. We have about 500MB in files and about 300MB (currently) in data, and we grow about 75-ish MB a year.</li><li>We would ideally like the data backups to be distinct from the site itself. That is, if we could simply kill an old server and deploy a new one, and then drop the data onto it (all automatically), that&rsquo;d be ideal. This is distinct from simply backing up an entire VM image, since the OS, files, and data would all be one chunk.</li><li>It&rsquo;d be lovely if, instead of having to patch and upgrade the OS, we can just kill the current server, deploy a new one with all the new hotness in versions, and drop the data on it.</li><li>The more of this that lives in Azure (e.g., Backups), the more likely - we feel - we&rsquo;ll be able to automate this entire kill-and-deploy process in OMS or something.</li></ul><p>Staying on Linux is fine. It also isn&rsquo;t a pre-req. WordPress (and MySQL, since WordPress doesn&rsquo;t play well with much else) are the main requirements. We&rsquo;d like to be on a modern (6+) version of PHP, as well.<br>
**Update: **So, let me outline the kind of thing we&rsquo;re thinking. So far we&rsquo;ve gotten a lot of suggestions on which OS to use, or which DB to use, and that wasn&rsquo;t really the question so much as the architecture. For example:</p><ol><li>Run a small, on-demand staging instance where patches (WordPress and plugins) are applied to the site. The site&rsquo;s folder is under Git, and after applying updates and testing, we push to a private (because configs contain passwords) GitHub repo. This instance isn&rsquo;t backed up - the important bits are in GitHub.</li><li>Use ____ to deploy the actual instance(s) that people will use. This deployment is a la Elastic Beanstalk, where you just push a base OS image and it sucks down your GitHub repo to populate the files of the site. Again, not backed up - GitHub is the backup.</li><li>Except for the WordPress Uploads folder, which you redirect to another, simpler instance that serves these as static files. This is a bit complex, because WordPress needs file-based access to this for uploading, while it also needs to be exposed as a web server for downloading. Simple backups to ensure we have copies of the files handy, and we don&rsquo;t need to retain a backup history because there&rsquo;s no code that could break and need to be rolled back.</li><li>Data lives on a distinct hosted RDBMS. That&rsquo;s probably MySQL, as it&rsquo;s what&rsquo;s supported with WordPress. We&rsquo;re aware of Namiproject, but unless that&rsquo;s moving in lockstep with the base WP releases and is 100% guaranteed to work with all the plugins we need&hellip;. The RDBMS is backed up separately.</li></ol><p>A concern with #4 in Azure is that they only offer this (for MySQL) through ClearDb, and I&rsquo;ve seen latency and persistency problems. I&rsquo;m ideally wanting everything hosted in one datacenter/region to reduce that problem. And I&rsquo;m aware of Namiproject, but we have something a bit more complex than a stock WP install, so someone&rsquo;s going to have to <em>convince</em> me that SQL Server&rsquo;s a safe choice.<br>
So&hellip; any suggestions for a full-stack? Please, be serious and complete - if your suggestion is, &ldquo;just run VMs,&rdquo; that&rsquo;s not helpful and it&rsquo;ll likely be deleted. But if you&rsquo;ve got ideas for a mix of services that you think will do the job - by all means, please, speak up!</p>
]]></content:encoded></item><item><title>Apologies for the delay</title><link>https://powershell.org/articles/2016-10-13-apologies-for-the-delay/</link><guid>https://powershell.org/articles/2016-10-13-apologies-for-the-delay/</guid><pubDate>Thu, 13 Oct 2016 12:35:22 +0000</pubDate><description>&lt;p&gt;Due to unforeseen circumstances we&amp;rsquo;re a bit late getting out notifications of the sessions accepted for the 2017 Summit.&lt;br&gt;
Apologies to everyone who submitted sessions.&lt;br&gt;
We hope to have the notifications out in the next few days&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Due to unforeseen circumstances we&rsquo;re a bit late getting out notifications of the sessions accepted for the 2017 Summit.<br>
Apologies to everyone who submitted sessions.<br>
We hope to have the notifications out in the next few days</p>
]]></content:encoded></item><item><title>No "Easy" Button for Configuration Management</title><link>https://powershell.org/articles/2016-10-12-no-easy-button-for-configuration-management/</link><guid>https://powershell.org/articles/2016-10-12-no-easy-button-for-configuration-management/</guid><pubDate>Wed, 12 Oct 2016 00:18:44 +0000</pubDate><description>&lt;p&gt;A discussion in one of my Slack channels caught my eye today around someone’s reflections in a github repo regarding DSC. The posted comment that introduced the link was titled “DSC from a newbie perspective”, and I thought “Oh? I’m a newbie too, I wonder if we’re thinking the same things.”&lt;br&gt;
A little history is probably needed on my “newbie” status with DSC. I went to the Tech Mentor conference in March, where I spent most of my time in sessions learning DSC. I was hooked, but knew I needed much more in-depth training to make it something that would be useful to me in the real world. So I set a goal of learning DSC in depth about 4 months, so that I could attend DevOps Camp in August, and be able to converse intelligently about DSC, Configuration Management, and DevOps in general. And with some help from friend and mentor Jason Helmick along with blood, sweat, tears, and 10-15 extra hours a week spent on just DSC, I made it to DevOps Camp and managed to follow along and join in the discussions.&lt;br&gt;
I’ve got about 6 months of DSC experience under my belt at this point, but I still consider myself a “newbie” in the grand scheme, so I fell hook, line, and sinker to go check out the comments here:&lt;br&gt;
&lt;a href="https://github.com/18F/azure-sandbox/blob/master/dsc/README-dsc.md"&gt;https://github.com/18F/azure-sandbox/blob/master/dsc/README-dsc.md&lt;/a&gt;&lt;br&gt;
I’m not an expert in Chef, so I won’t comment on the comparisons between the two. But while two weeks may be long enough to do a quick comparison between a product you know something about (in his case, Chef) and a product you are vetting against it (DSC), it isn’t nearly enough time to come to a conclusion like “DSC is too immature to even consider as a stopgap”.&lt;br&gt;
Reading on, the reasons for liking/hating DSC seem to be the reasons for hating/liking Chef. Not wanting others to need to deal with learning Ruby was mentioned as a plus for DSC.  But it also seems like the poster wanted or expected DSC to be easy so that folks didn’t have to learn Chef, and was disappointed that it wasn’t.&lt;br&gt;
There’s no “easy” button - if there really were an easy button for automation and configuration management, we’d have all the resources ever wanted neatly packaged and consumable, but the building of the platform and the tooling surrounding the platform takes time, people, and effort. So build and submit a High Quality Resource Module, or fork and fix some of the “awful error tracking”.  Some of these comments and feedback are really quite legit – but the points that need to be made and worked on are lost under the lamenting that DSC doesn’t have an Easy button.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>A discussion in one of my Slack channels caught my eye today around someone’s reflections in a github repo regarding DSC. The posted comment that introduced the link was titled “DSC from a newbie perspective”, and I thought “Oh? I’m a newbie too, I wonder if we’re thinking the same things.”<br>
A little history is probably needed on my “newbie” status with DSC. I went to the Tech Mentor conference in March, where I spent most of my time in sessions learning DSC. I was hooked, but knew I needed much more in-depth training to make it something that would be useful to me in the real world. So I set a goal of learning DSC in depth about 4 months, so that I could attend DevOps Camp in August, and be able to converse intelligently about DSC, Configuration Management, and DevOps in general. And with some help from friend and mentor Jason Helmick along with blood, sweat, tears, and 10-15 extra hours a week spent on just DSC, I made it to DevOps Camp and managed to follow along and join in the discussions.<br>
I’ve got about 6 months of DSC experience under my belt at this point, but I still consider myself a “newbie” in the grand scheme, so I fell hook, line, and sinker to go check out the comments here:<br><a href="https://github.com/18F/azure-sandbox/blob/master/dsc/README-dsc.md">https://github.com/18F/azure-sandbox/blob/master/dsc/README-dsc.md</a><br>
I’m not an expert in Chef, so I won’t comment on the comparisons between the two. But while two weeks may be long enough to do a quick comparison between a product you know something about (in his case, Chef) and a product you are vetting against it (DSC), it isn’t nearly enough time to come to a conclusion like “DSC is too immature to even consider as a stopgap”.<br>
Reading on, the reasons for liking/hating DSC seem to be the reasons for hating/liking Chef. Not wanting others to need to deal with learning Ruby was mentioned as a plus for DSC.  But it also seems like the poster wanted or expected DSC to be easy so that folks didn’t have to learn Chef, and was disappointed that it wasn’t.<br>
There’s no “easy” button - if there really were an easy button for automation and configuration management, we’d have all the resources ever wanted neatly packaged and consumable, but the building of the platform and the tooling surrounding the platform takes time, people, and effort. So build and submit a High Quality Resource Module, or fork and fix some of the “awful error tracking”.  Some of these comments and feedback are really quite legit – but the points that need to be made and worked on are lost under the lamenting that DSC doesn’t have an Easy button.</p>
]]></content:encoded></item><item><title>DSC ConfigurationData Blocks in a World of Cattle</title><link>https://powershell.org/articles/2016-10-11-dsc-configurationdata-blocks-in-a-world-of-cattle/</link><guid>https://powershell.org/articles/2016-10-11-dsc-configurationdata-blocks-in-a-world-of-cattle/</guid><pubDate>Tue, 11 Oct 2016 21:01:59 +0000</pubDate><description>&lt;p&gt;As you may know, Jeffrey Snover and I have, for some time, been on a &amp;ldquo;servers are cattle, not pets&amp;rdquo; kick. Meaning, servers shouldn&amp;rsquo;t be special, individualized snowflakes. They should be, in many regards, appliances. One dies, you eat it and make another. They don&amp;rsquo;t have names - that you know of. They don&amp;rsquo;t have IP addresses - that you know of. Oh, I mean, they &lt;em&gt;have&lt;/em&gt; them, but you don&amp;rsquo;t know them and don&amp;rsquo;t care.&lt;br&gt;
Anyway, one thing that came up in a recent conversation related to DSC&amp;rsquo;s ConfigurationData blocks. Have a &lt;a href="https://msdn.microsoft.com/en-us/powershell/dsc/configdata"&gt;look at the MSDN documentation&lt;/a&gt; and tell me what you see.&lt;br&gt;
Go on, I&amp;rsquo;ll wait.&lt;br&gt;
You see **NodeName. **But damnit, if servers are cattle and cattle don&amp;rsquo;t have (known) names, what the dude is NodeName all about?&lt;br&gt;
Well, for one, it was a poor choice on the team&amp;rsquo;s part. I&amp;rsquo;d have called it - and this is giving away the punchline - **NodeRole. **Imagine that your &amp;ldquo;NodeName&amp;rdquo; was &amp;ldquo;SalesAppWebServerRole.&amp;rdquo; When you run your configuration script, you get a MOF named SalesAppWebServerRole.mof, right? Which you then checksum and load onto a pull server. And when you&amp;rsquo;re spinning up a new server to host that role, you tell its LCM to grab the ConfigurationName &amp;ldquo;SalesAppWebServerRole.&amp;rdquo;&lt;br&gt;
The server, when spinning up, makes up a name for itself. Charming, right? Cows think they have names. Sweet. Don&amp;rsquo;t care. It gets an IP address for itself, partially from DHCP of course, and partially by making up the other necessary IPv6 stuff (oh, and IPv6 is a thing now, so get on board).&lt;br&gt;
Then, presumably, it runs to the pull server, grabs the MOF, and starts a consistency check. During which, presumably, _it registers some known name with DNS or load balancer or something. _Now you know it&amp;rsquo;s &amp;ldquo;name!&amp;rdquo; Or the name you want to call it by, at least. Also presumably, your load balancer knows to remove or suspend the entry if the host stops responding, and to periodically scavenge stale records (remember, the node&amp;rsquo;s own LCM will make sure its entry gets put back, on the next consistency check run). So if the node dies and you spin up a new one, the rest of the affected infrastructure - DNS, load balancers, what have you - clean themselves up automatically (and DSC could be involved in that process, too).&lt;br&gt;
Anyway&amp;hellip; the point is that ConfigurationData blocks can absolutely be used for cattle farms, not just for pet shops. &amp;ldquo;NodeName&amp;rdquo; is a misleading setting, but if you think of it as a role, which could be applied to multiple actual machines, then it makes a lot more sense that way.&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>As you may know, Jeffrey Snover and I have, for some time, been on a &ldquo;servers are cattle, not pets&rdquo; kick. Meaning, servers shouldn&rsquo;t be special, individualized snowflakes. They should be, in many regards, appliances. One dies, you eat it and make another. They don&rsquo;t have names - that you know of. They don&rsquo;t have IP addresses - that you know of. Oh, I mean, they <em>have</em> them, but you don&rsquo;t know them and don&rsquo;t care.<br>
Anyway, one thing that came up in a recent conversation related to DSC&rsquo;s ConfigurationData blocks. Have a<a href="https://msdn.microsoft.com/en-us/powershell/dsc/configdata">look at the MSDN documentation</a> and tell me what you see.<br>
Go on, I&rsquo;ll wait.<br>
You see **NodeName. **But damnit, if servers are cattle and cattle don&rsquo;t have (known) names, what the dude is NodeName all about?<br>
Well, for one, it was a poor choice on the team&rsquo;s part. I&rsquo;d have called it - and this is giving away the punchline - **NodeRole. **Imagine that your &ldquo;NodeName&rdquo; was &ldquo;SalesAppWebServerRole.&rdquo; When you run your configuration script, you get a MOF named SalesAppWebServerRole.mof, right? Which you then checksum and load onto a pull server. And when you&rsquo;re spinning up a new server to host that role, you tell its LCM to grab the ConfigurationName &ldquo;SalesAppWebServerRole.&rdquo;<br>
The server, when spinning up, makes up a name for itself. Charming, right? Cows think they have names. Sweet. Don&rsquo;t care. It gets an IP address for itself, partially from DHCP of course, and partially by making up the other necessary IPv6 stuff (oh, and IPv6 is a thing now, so get on board).<br>
Then, presumably, it runs to the pull server, grabs the MOF, and starts a consistency check. During which, presumably, _it registers some known name with DNS or load balancer or something. _Now you know it&rsquo;s &ldquo;name!&rdquo; Or the name you want to call it by, at least. Also presumably, your load balancer knows to remove or suspend the entry if the host stops responding, and to periodically scavenge stale records (remember, the node&rsquo;s own LCM will make sure its entry gets put back, on the next consistency check run). So if the node dies and you spin up a new one, the rest of the affected infrastructure - DNS, load balancers, what have you - clean themselves up automatically (and DSC could be involved in that process, too).<br>
Anyway&hellip; the point is that ConfigurationData blocks can absolutely be used for cattle farms, not just for pet shops. &ldquo;NodeName&rdquo; is a misleading setting, but if you think of it as a role, which could be applied to multiple actual machines, then it makes a lot more sense that way.</p>
]]></content:encoded></item><item><title>A Practical Guide for Using Regex in PowerShell</title><link>https://powershell.org/articles/2016-10-04-a-practical-guide-for-using-regex-in-powershell/</link><guid>https://powershell.org/articles/2016-10-04-a-practical-guide-for-using-regex-in-powershell/</guid><pubDate>Tue, 04 Oct 2016 00:49:59 +0000</pubDate><description>&lt;p&gt;Regular Expressions is often referred to as wizardry or magic and for that reason I stayed away from it for most of my career. I used it only when I had to and most of the time just reused examples that I found online. There&amp;rsquo;s nothing wrong with that of course, but I never took the time to learn it. I thought it was reserved for the elite. Turns out that it&amp;rsquo;s not that complicated and that I had been using it for years without knowing it.&lt;br&gt;
In an effort to shorten the learning curve for others and to show you the value of learning regular expression I&amp;rsquo;ve written a blog post titled &lt;a href="http://duffney.io/APracticalGuideforUsingRegexinPowerShell"&gt;A Practical Guide for Using Regex in PowerShell&lt;/a&gt;. It will walk you through how to use regular expression in PowerShell and gives you a glimpse into how powerful regular expression is.&lt;br&gt;
Below is an example of how to use regular expression to extract a user&amp;rsquo;s name from their distinguished name in Active Directory. To learn more check out this &lt;a href="http://duffney.io/APracticalGuideforUsingRegexinPowerShell"&gt;blog post&lt;/a&gt;.&lt;br&gt;
&lt;img src="https://powershell.org/wp-content/uploads/2016/10/matches-1.png" alt="matches"&gt;&lt;br&gt;
Topics Covered&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Regular Expressions is often referred to as wizardry or magic and for that reason I stayed away from it for most of my career. I used it only when I had to and most of the time just reused examples that I found online. There&rsquo;s nothing wrong with that of course, but I never took the time to learn it. I thought it was reserved for the elite. Turns out that it&rsquo;s not that complicated and that I had been using it for years without knowing it.<br>
In an effort to shorten the learning curve for others and to show you the value of learning regular expression I&rsquo;ve written a blog post titled <a href="http://duffney.io/APracticalGuideforUsingRegexinPowerShell">A Practical Guide for Using Regex in PowerShell</a>. It will walk you through how to use regular expression in PowerShell and gives you a glimpse into how powerful regular expression is.<br>
Below is an example of how to use regular expression to extract a user&rsquo;s name from their distinguished name in Active Directory. To learn more check out this<a href="http://duffney.io/APracticalGuideforUsingRegexinPowerShell">blog post</a>.<br><img src="https://powershell.org/wp-content/uploads/2016/10/matches-1.png" alt="matches"><br>
Topics Covered</p><ul><li>-match operator</li><li>-match operator with regular expression metacharacters</li><li>-notmatch with where-object</li><li>-replace operator</li><li>-split operator</li><li>Select-String</li><li>Switch Statements</li><li>Regex Object</li></ul>
]]></content:encoded></item><item><title>Call for topics – Summit closed but European conference open</title><link>https://powershell.org/articles/2016-10-03-call-for-topics-summit-closed-but-european-conference-open/</link><guid>https://powershell.org/articles/2016-10-03-call-for-topics-summit-closed-but-european-conference-open/</guid><pubDate>Mon, 03 Oct 2016 08:57:49 +0000</pubDate><description>&lt;p&gt;The deadline for the submission of proposals for the 2017 has passed. We are NOT taking any new submissions. if you’ve been in communication regarding a submission thats fine its still under consideration and I’ll be in touch.&lt;/p&gt;
&lt;p&gt;On the positive side the call for speakers for the European PowerShell conference has opened - &lt;a href="http://www.powertheshell.com/psconfeu/"&gt;http://www.powertheshell.com/psconfeu/&lt;/a&gt;&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>The deadline for the submission of proposals for the 2017 has passed. We are NOT taking any new submissions. if you’ve been in communication regarding a submission thats fine its still under consideration and I’ll be in touch.</p><p>On the positive side the call for speakers for the European PowerShell conference has opened -<a href="http://www.powertheshell.com/psconfeu/">http://www.powertheshell.com/psconfeu/</a></p>
]]></content:encoded></item></channel></rss>