A quick preamble. All of the code used here is available in my GitHub at https://github.com/tinfoilcipher/packer-example and https://github.com/tinfoilcipher/ansible-example and no, none of the UIDs are real, so don’t try and connect to my Azure tenancy 🙂 The term “toolchain” is thrown around a lot in the DevOps world, as are the essential tools of Terraform, Packer and Ansible. What is less spoken about outside of abstract theory is how to actually . . .
A quick preamble. All of the code used here is available in my GitHub at https://github.com/tinfoilcipher/terraform-example, and no, none of the UIDs are real, so don’t try and connect to my Azure tenancy :). Terraform is an essential tool and in many ways the cornerstone of the Infrastructure as Code mentality, allowing the creation, modification and destruction of cloud infrastructures from a simple configuration file, however getting started with the . . .
Recently I’ve been presented with the problem of VMWare terminal servers which suffer a saturation of memory at certain times of the day but need to be available 24/7. How best to compensate for that? The biggest killer of memory in this environment is that horror of horrors, Google Chrome, it’d be easier to use a better browser right? Except that isn’t an option when you’re invested in a web . . .
The power of leveraging Ansible Tower against Dynatrace problem detection first dawned on me after reading a post from the excellent Wolfgang Beer. He talks about the solution in the abstract and gives a pretty concise guide on how to leverage APM to use event driven metrics to launch a Playbook, but I ran in to issues almost instantly. The problem isn’t obvious straight away, most people run Dynatrace as . . .
Ansible Tower and Netbox are two of the greatest tools in the DevOps toolchain, and the integration is seemingly painless on the surface (and really it isn’t all that bad) but there is a little nuance to it. Both application stacks provide a RESTful API so sending data between the two should be as simple as firing some JSON between them right? Even with Ansible being a YAML focused platform . . .
In the immortal words of the Notepad++ User Manual: Documentation is like sex, when it’s good, it’s very, very good; when it’s bad, it’s better than nothing. https://npp-user-manual.org/ This has never in my life been more apparent than working with the Dynamics 365 Finance and Operations APIs. Providing some truly dreadful documentation and a smattering of documents that lay out the high level framework of how authentication all ties together . . .
Anyone that’s ever spoken to me about tech for more than 30 seconds will know how much I love Ansible and even more Ansible Tower (Red Hat’s REST API and Web Services console) and with good cause; it’s top of class Infrastructure Automation and easily more flexible, scalable and and lightweight than Cloud Formation, Chef, Puppet, Salt or any of it’s contemporaries. On top of that, it’s documentation is second . . .
Netbox is an incredible tool and I’ll happily say I don’t know how I worked before I was introduced to it, scrabbling around in leviathan (non version controlled) spreadsheets and SharePoint pages that try to perform IP address management, or even worse the notes on a scrap of paper or book on someone’s desk. There are other tools on the market, but they cost an arm and a leg for . . .
One of Ansible’s most brilliant features is Privilege Escalation, the ability to enter the context of a more privileged user following an initial connection to either your local or remote node, however a bizarre little caveat of this is something I haven’t been able find documented anywhere and it refers to the use of a system account (by default named awx) on the localhost. What the hell is AWX anyway? . . .