DevOps 101 for the SysAdmin - Code,Git,CI/CD & Infrastructure as Code - Joe Houghes - PSConfEU 2023

preview_player
Показать описание
## Complete title
DevOps 101 for the Systems Admin - Code, Git, CI/CD & Infrastructure as Code

## Summary
In this session, I - Joe Houghes - am addressing an audience that has limited experience with automation. Most of them have only used PowerShell by copying and pasting from VMware blogs and have not utilized tools like Git, Terraform, or Ansible for automation. I introduce myself as a Senior Solutions Architect at Pure Storage and explain my expertise in servers, networking, storage, and infrastructure as code. I express the importance of understanding PowerShell basics and using "Get-Help" to learn from examples and experiences of others. I emphasize the power of PowerShell's pipeline and the ability to manipulate objects, using the analogy of stacking Lego blocks. I encourage embracing automation, even if others may not see the steps taken to achieve the end result, and urge learners to cheat and look up answers when needed. I also suggest using GUI tools to explore and understand changes in the environment.

Moving on, I discuss Git and explain the Git flow to the audience, highlighting the importance of understanding the staging area and how branching can be used to manage code versions. I mention the usefulness of graphical tools in presenting code to new team members. I breeze through three quick slides on Packer and Terraform, explaining how Packer automates the creation of golden images or machine templates for different environments. I mention the goal of Packer to ensure up-to-date base templates and how it can be combined with Terraform and Ansible for automating updates before provisioning templates. I mention that Packer and Terraform use the HashiCorp Configuration Language (HCL) and explain how Terraform is used for provisioning infrastructure, especially virtual environments. I talk about Terraform's declarative model and its ability to create standardized machine templates for both VMware and cloud environments using a single tool. I highlight the multiple providers offered by Terraform, owned and managed by the respective platforms, ensuring access to the latest features. I mention that Terraform generates state files, capturing the environment's current state and offering useful features like resource mapping and deployment graphs.

Moving on to Ansible, I explain that it is an automation framework that relies on SSH or Python. I mention that it runs from a controller machine and uses inventory to manage devices. I discuss the concepts of playbooks, modules, tasks, and roles used in Ansible for provisioning across various environments. I emphasize that Ansible complements Terraform by focusing on tasks beyond infrastructure provisioning, such as configuration management and orchestration. I also mention that Ansible integrates well with PowerShell and allows management of additional hardware like network switches.

I ask the audience about their familiarity with Packer, Terraform, and Ansible and highlight the advantages of using PowerShell within these tools. I emphasize the value of a unified platform and shared engine for infrastructure provisioning. I mention that I plan to demonstrate code examples assuming the lab environment is ready. I transition to discussing PowerCLI and stress the importance of PowerShell for VMware administrators.

I discuss the challenge of explaining PowerShell concepts to individuals without a PowerShell background. I explain the process of establishing a connection to the management plane in the vCenter environment and retrieving objects such as data centers, clusters, and hosts. I mention the specific information contained in each object and its relevance to the infrastructure. I provide an analogy to the GUI by explaining the logical cluster that contains hosts as members and the graphical representation of their relationship. I demonstrate using the "get-member" command to showcase available commandlets that can be piped based on object types.
Рекомендации по теме