Puppet Consultants will provide services to assist the Customer to rapidly deploy Puppet Enterprise and successfully integrate it into the Customer’s infrastructure. The engagement will consist of knowledge transfer and paired development. The objective is a working implementation of Puppet Enterprise that is designed to meet the Customer’s configuration management automation goals, and a Customer team that is well prepared to continue its configuration management automation effort.
- Installations of up to 1,500 nodes
- Small teams of up to 6 people
- Customers interested in an engagement focused on getting workflow established from the start
- Customers that want an additional week of deployment services to cement concepts, manage base configuration, and focus on their specific needs
- Customers that will carry forward extending configuration management post-engagement
Consulting Services Description
Puppet will provide the following services related to the implementation of Puppet Enterprise:
1. Pre-engagement planning and preparation
- Remote discovery call(s)
- Draft project plan
- Other preparation items as needed (research, testing, etc.)
- To be completed by the Customer prior to the start of the engagement:
- Validate appropriate compute, network, and storage has been provisioned
- Confirm full-time availability of at least one technical contact has been committed
2. On-site discovery and concept review
- Determine goals and business needs
- Provide high-level overview of Puppet concepts if needed
3. Puppet Enterprise Installation
- Installation of Puppet Enterprise in a Monolithic Master configuration.
- Add up to one compilation master for additional capacity to support up to 1,500 nodes.
- Configure backup and maintenance of the Puppet Enterprise infrastructure
- Knowledge transfer and initial configuration of Puppet Enterprise database backups and maintenance using this module https://forge.puppet.com/npwalker/pe_databases
- Knowledge transfer of procedures for restoring the Puppet Enterprise infrastructure from backups.
- Puppet Enterprise Agent deployment
- Knowledge transfer of Puppet Enterprise agent installation
- Installation of Puppet Enterprise agents on as many nodes as licensed and possible
- Knowledge transfer of options for automated Puppet Enterprise agent installation using one of the following techniques:
- Puppet Frictionless Agent Installation Tool
- Puppet Bolt and Tasks for mass agent installation via SSH/WinRM
- Windows Group Policy
- Suitable pre-existing Customer tooling
- Knowledge transfer on approaches to integrate Puppet agent installation into the Customer’s OS-provisioning system
4. Puppet module abstraction best practices as follows
- Knowledge transfer on Roles & Profiles pattern, which simplifies the classification of nodes, facilitates code reuse and makes it simpler for users to have a high level understanding of what Puppet Enterprise is managing on a system.
- Pairing with the Customer’s staff to create an initial “base” profile to manage common system settings and one other profile to practice using the pattern.
- High-level definition of at least 3 additional roles and the profiles they include, which provides a “business level” view of what Puppet Enterprise is managing on node such as “Web Server” or “Database Server.”
- Knowledge transfer on the use of the Node Classifier, which is used to assign roles, profiles, and component module code to managed nodes.
- Setup of at least 3 Node Classifier node groups to practice use of the Node Classifier
5. Collaborate on Component Module Development
- Pair with Customer to create at least one simple (i.e., fewer than 10 resources) module as a training exercise in module development and
- Pair with the Customer to convert at least 2 short (i.e., fewer than 100 line) scripts into Puppet modules using the version control workflow OR to select appropriate Forge Modules as replacements
6. Collaborate on Hiera for Code-Data Separation to increase module reusability
- Knowledge transfer on the appropriate use of Hiera and effective hierarchy design
- Pair with Customer to create at least one simple Hiera hierarchy containing a demonstrative number of facts, but no more than 4 levels as an introduction to the use of Hiera
- Knowledge transfer on debugging Hiera
7. Collaborate on how to use Forge modules
- Pair with the Customer to select appropriate modules from the Puppet Forge for incorporation into the profiles created in 4(b) to give insight into how to pick modules and assess their quality. Please see Key Assumption 10 for limitations
8. Workflow set up as follows
- Review of version control system options and assistance in selecting one that meets Customer requirements and is supported by Puppet Code Manager or r10k (e.g., git, GitLab, GitHub, GitHub Enterprise, Bitbucket Enterprise)
- Configure Puppet Code Manager or r10k to manage Puppet code and Hiera data on the Puppet master
- Explain the purpose of a “Control Repo” and assist in its creation.
- Explain the purpose of a Puppetfile for module pinning and assist in its Creation
9. Deploy Puppet Code with Puppet code development workflow
- Pair with the Customer to deploy the Profiles, and component modules to one Puppet code environment of the Customer’s choice
- Knowledge transfer on techniques for promoting Puppet modules through preproduction environments (i.e. Dev, Test, QA, Staging)
- If time allows and the Customer’s IT infrastructure and processes permit, the Puppet Consultant will pair with the Customer’s staff to demonstrate the promotion of Puppet code to at least one additional environment
10. Recap meeting to close out engagement and to reinforce all the concepts covered
- Puppet Enterprise installation
- Puppet Enterprise agent deployment on up to as many nodes as possible
- Workflow setup
- Pair programming sessions
- Post engagement documentation including:
- Puppet Enterprise Installation Details
- Workflow Summary
- Recap of Work Performed