Linux Automation for the Enterprise
Welcome to the ProLUG Enterprise Linux Automation Course Book.
This Book
Contains all materials pertaining to the course including links to external resources. It has been put together with care by a number of ProLUG group members referencing original instructional materials produced by Scott Champine @Het_Tanis .
The content is version controlled with Git and stored here: https://github.com/ProfessionalLinuxUsersGroup/course-books
Course Description
This course addresses how to automate Linux in a corporate environment. This course will focus on taking design, build, deploy, administration, and remediation tasks and turning them into automated processes. The emphasis will be on integration during the build, run, and end of life phase so that CI/CD can occur and deployments as code are utilized. The learner will practice securely building, deploying, integrating, and monitoring Linux systems in an automated fashion.
Prerequisite(s) and/or Corequisite(s):
Prerequisites: None
Credit hours: N/A
Contact hours: 160 (60 Theory Hours, 100 Lab Hours)
Course Summary
Major Instructional Areas
- Automation Tools
- Automation Mindset
- Systems Engineering Focus
- Continuous Integration/Continuous Deployment (CI/CD) Focus
- Operations/Administration Focus
- System Building (Standardization)
- Prebaking
- Personalization
- Updating Systems and Patch Management
- Software and Package Deployment
- Networking Configurations
- System Checking and Reporting
Course Objectives
- Deploy various automation tools for engineering and operations activities.
- Retrieve information with API calls to facilitate automation activities.
- Maintain inventories of systems for automation activities.
- Map environment variables to systems and utilize them in automations.
- Describe the activities of the Automation Mindset.
- Map where automation works within CI/CD frameworks.
- Deploy and configure a Linux system with automated tools.
- Automate updating Linux to resolve security vulnerabilities and report out to security teams.
- Configure networking devices with automation tools.
- Maintaining system configuration and remediating drift via automation.
- Troubleshooting Automation and CI/CD pipelines when there are issues
- Utilize the testing methodologies for environments and CI/CD Deployments
Learning Materials and References
Option #1 (Killercoda Machine)
- Cloud Lab server running Ubuntu on Killercoda (must be 2 node environment).
Minimal resources:
- 1 CPU
- 2 GB Ram
- 30 GB Hard Drive
- Network Interface (IP already setup)
Option #2 (Home Lab)
- Local VM server running: RHEL, Fedora, Rocky
Minimal resources:
- 1 CPU
- 2GB RAM
- Network Interface (Bridged)
Option #3 (ProLUG Remote Lab)
- ProLUG Lab access to Rocky 9 instances (auto servers).
Minimal resources:
- 1 CPU
- 8 GB RAM
- Network Interface (IP already setup)
Course Plan
Instructional Methods
This course is designed to promote learner-centered activities and support the development of Linux automation skills. The course utilizes individual and group learning activities, performance-driven assignments, problem-based cases, projects, and discussions. These methods focus on building engaging learning experiences conducive to development of critical knowledge and skills that can be effectively applied in professional contexts.
The "Explore Practice Apply" acquisition path will be integrated into this course.
Class size
This class will effectively engage 100-200 learners.
Class Schedule
Class will meet over weekend (brown bag) sessions. One (1) time per week, for 16 weeks. There will be a total of 16 sessions.
Session Overview
| Session | Topic |
|---|---|
| 1 | Automation Tools (Installation and Execution) |
| 2 | Interacting with the Operating System |
| 3 | Making and Using Inventories |
| 4 | Admin Commands and One-Offs |
| 5 | Environment and Local Variables in Systems |
| 6 | Automating Docker Builds |
| 7 | Automating Docker Environments |
| 8 | Automating K8s Environments |
| 9 | Build and Deploy Linux Systems |
| 10 | Harden Linux Systems |
| 11 | Update and Patch Systems |
| 12 | Configure Network Devices |
| 13 | Remediating and Reporting on Drift |
| 14 | CI/CD Pipelines and Make v. Buy v. Adopt Decisions. |
| 15 | Troubleshooting/Testing 1 |
| 16 | Troubleshooting/Testing 2 |
Suggested Learning Approach
In this course, you will be studying individually and within a group of your peers, primarily in a lab environment. As you work on the course deliverables, you are encouraged to share ideas with your peers and instructor, work collaboratively on projects and team assignments, raise critical questions, and provide constructive feedback.