Puppetizing the workstations

jhaals
4 min readbeginner
--
View Original

Overview

The article discusses Spotify's implementation of Puppet for managing internal client workstations, detailing their experiences and solutions to common challenges. It highlights the evolution of their Puppet usage from basic application installations to a comprehensive setup managing over 1500 nodes with various modules.

What You'll Learn

1

How to automate workstation management using Puppet

2

Why using local caches can improve software deployment speed

3

How to create a self-tagging system for software requests

Prerequisites & Requirements

  • Basic understanding of Puppet and workstation management
  • Familiarity with DeployStudio and Apache(optional)

Key Questions Answered

How does Spotify manage software installation on workstations?
Spotify uses Puppet to automate the management of over 1500 workstations, employing thirty modules to configure applications, printers, and network settings. New machines are pre-installed with Puppet, and the system runs scripts every fifteen minutes to handle node naming and certificate issues.
What solution did Spotify implement to address bandwidth issues?
To combat poor bandwidth, Spotify utilized Mac Minis as local caches for software updates, allowing nodes to fetch software from a local network repository. This approach improved Puppet run speeds by up to 1000%, significantly enhancing deployment efficiency.
How does Spotify facilitate software requests from users?
Spotify created a self-tagging website that allows users to select software they need based on their computer's certname. This automation reduces the need for manual tagging and streamlines the installation process.

Key Statistics & Figures

Number of nodes managed
1500
Spotify's Puppet setup encompasses over 1500 workstations.
Speed improvement in Puppet runs
1000%
Using local caches improved some Puppet runs by 1000%.

Technologies & Tools

Configuration Management
Puppet
Used to automate the management of workstations and software installations.
Web Server
Apache
Configured to use mod_cache for caching software updates.
Deployment Tool
Deploystudio
Used for pre-installing Puppet on new machines.

Key Actionable Insights

1
Implement a local caching solution for software updates to enhance deployment speed.
Using local caches can drastically reduce the time taken for software installations, especially in environments with poor bandwidth. This is particularly useful for organizations with multiple locations.
2
Automate user software requests with a self-service portal.
By allowing users to tag their own machines for software installations, IT teams can reduce manual workload and improve response times for software requests.
3
Regularly schedule Puppet runs to maintain system consistency.
Frequent Puppet runs (every fifteen minutes) ensure that any changes or issues are quickly addressed, maintaining a stable and consistent workstation environment.

Common Pitfalls

1
Failing to account for varying software update processes across different applications.
Each software manufacturer has unique methods for updates, which can complicate automation. It's essential to understand these processes to effectively manage and automate installations.