Today’s Datanauts show is all about learning new technologies. Ethan and Chris have each spent time digging into a technology that’s unfamiliar to them: building a DNS service using CoreOS for Ethan, and using AppVeyor to built a test environment for PowerShell scripts for Chris.
They’ll talk about why they’ve undertaken these projects, what they’ve learned, obstacles they faced and how they worked around them, and share tips for folks who are also digging into new tech.
This episode of Datanauts is brought to you by ITProTV. Enhance your technology aptitude. ITProTVis the resource to keep your I.T. skills up to date, with engaging and informative video tutorials. For a free 7-day trial and 30% off the life of your account, go to itpro.tv/datanauts and use the code DATANAUTS30.
The Datanauts are sponsored by Altaro Software, developers of virtual backup trusted by over 30,000 SMBs. If you need an easy-to-use and affordable Hyper-V and VMware backup solution, try Altaro VM Backup for 30 days. Visit go.altaro.com/datanauts/ and throughout the month of June Datanauts listeners will get a free Altaro t-shirt. Plus, after the 30-day trial you can back up 2 VMs for free, forever!
Part 1 – CoreOS
- Project – build an elastic DNS service
- Container-based DNS
- Platform to run containers (CoreOS)
- Scheduler (Kubernetes)
- Load generator
- Starting with…CoreOS
- It’s not just another Linux distro
- Available in many flavors
- Arguable whether or not you should install on bare metal or hypervisor
- I chose their OVA to install on ESXi for labby reasons
- Install is easy. But you can’t do anything with it.
- No IP
- Can’t login from local console
- Cloud-config must be engaged
- Now, the question is clustering
- Etcd manages the cluster
- Oh, and you should install that on a platform where you can guarantee resources. Not on the same platform where you’ll be standing up lots of containers that are consuming compute.
- Same logic will apply to the Kubernetes instance
- Kelsey Hightower has several presentation videos that get right to it
- CoreOS documentation isn’t amazing, but it doesn’t suck, either. Assumes you know a few things, or can figure them out quickly.
- A little hard for this n00b, but Google helped me sort it out
Part 2 – AppVeyor
- Link: https://www.appveyor.com/
- Project link: https://ci.appveyor.com/project/chriswahl/powershell-module
- Start by building a project, in my case using GitHub as the source for the project code
- You can also pick a specific branch in case master isn’t appropriate
- Tip: I also limit it to builds for master, as I don’t want it to check all of my other branches until I’m ready to merge with master. For me, I consider this to be the “last check” before putting it into prod. YMMV
- How do you want to control AppVeyor?
- Settings within the web GUI or YAML file
- Big props to our previous guest, Warren, for having written so much on this topic!
- Warren’s Blog: http://ramblingcookiemonster.github.io/
- I use the YAML file for the most part
- Installs Pester (testing framework for PowerShell)
- Turns off the “build” phase as there’s nothing to actually build
- Invokes the Pester tests
- Pester tests are how the tests are performed and what is actually used as a truth of unit / integration testing
- However! Environmental variables can still be used even with a YAML file in existence
- I bake in the “secret” stuff into the ENV information because it’s abstracted from view
- This is things like test account information for running an integration test and the location for a test instance to run against
- I still feel like there’s much more to learn!
- There’s places where you can tell AppVeyor what to do when a build fails
- Would there be any value in this for me, perhaps to push the completed code to the PowerShell gallery?
- You can place these on your repository to show the status of the tests
- I use the one for Master branch