Puppet Enterprise Training
THIS IS NOT A SOLICITATION FOR PROPOSALS. THIS IS A SOURCES SOUGHT SYNOPSIS ONLY This Request for information (RFI) is for the purpose of identifying companies that can meet the following Bureau of Re... THIS IS NOT A SOLICITATION FOR PROPOSALS. THIS IS A SOURCES SOUGHT SYNOPSIS ONLY This Request for information (RFI) is for the purpose of identifying companies that can meet the following Bureau of Reclamation Requirements. Scope of Training A Puppet certified trainer will provide presentation and hands-on using the course agenda following the detailed course design as described during each day of training. The Puppet certified trainer will effectively show how their products can work in BOR's environment during the period of training. Course Agenda During this class, students will build a production style environment with: A Puppet Master with multiple environments backed by git repositories. PuppetDB as the data warehouse for all Puppet data generated in the classroom. Hiera as a single source of truth for data lookups in our manifests. Shared information to stand up a web application behind a proxy. A series of modules adhering to common design patterns. Day 1 Puppet basics review Using Puppet data for visibility while updating code Data structures in the Puppet DSL New language constructs introduced in Puppet 4 Methods for specifying resource relationships and ordering Writing custom facts & functions Day 2 Alternate ways of managing files, or parts of files Best practices pertaining to class inheritance Data separation and single source of truth Architecting modules and abstraction layers Roles & Profiles Day 3 Introduction to testing Puppet code Sharing modules with the community Orchestration with Puppet Tasks Capstone Lab Detailed Course Design Classroom Environment - Creation of the classroom account that the student will use throughout the 3 day course. This provides an environment where the students can perform the labs. This include setting up not only the account but also the agent node to run puppet agent tasks, and validating the Puppet Enterprise installation. Editing Code in the Classroom: Setup a code repository for the students where they will write code for their labs. Puppet Basics Review: Recall fundamental concepts about the Puppet language. Describe the Resource Abstraction Layer. Describe state modeling and idempotence. Using Puppet Data: Validate classification by inspecting agent caches. Validate resource attributes by inspecting the catalog. Read Puppet reports and correlate errors to your codebase. Navigate the Puppet Enterprise Event Inspector. Resources: Use resource defaults to reduce duplication. Purge non-managed resources. Define and declare your own resource types. Explain the utility of defined resource types. Language Constructs: Define the concept of a data type. Identify several core data types in Puppet. Make robust classes with parameter validation. Use iteration and transformation functions. Evaluate tradeoffs when using advanced language constructs. Ordering Techniques: Explain parse order dependence and resource dependencies. Understand class and resource containment. Use alternate syntax to describe order. Assign ordering relationships based on search expressions. Facts and Functions: Identify the life cycles of facts and functions. Access facts in your Puppet manifests. Execute functions in your Puppet manifests. Develop simple facts and functions. File Manipulation: Identify several techniques for managing parts of files as resources. Iteratively create configuration files out of component pieces. Interact with configuration settings contained in files. Inheritance: Describe the uses of class inheritance. Abstract common behaviors into base classes. Describe variable resolution through parent classes. Utilize design patterns to simplify platform abstraction. Identify drawbacks to inheritance and clearer alternatives. Data Separation: Describe the single source of truth design pattern. Identify the data abstraction capabilities of Hiera. Identify available Hiera functionality in Puppet. Configure and use Hiera. Describe the role of Automatic Parameter Lookup. Architecting Modules: Define the appropriate scope for new modules. Structure new modules effectively. Design modules for future maintainability. Create composable component modules that are reusable. Roles and Profiles: Identify drawbacks to node level logic. Differentiate between business logic and implementation. Use Hiera and the ENC to efficiently abstract layers of the stack. Create appropriate role and profile classes. Introduction to Module Testing: Describe unit, integration, and acceptance testing. Develop rspec unit tests to effectively test your Puppet code. Develop acceptance tests with server spec to test the end result. Sharing Modules: Define the scope for community-oriented modules. Construct module releases with proper versioning and metadata. Publish modules and releases on the Puppet Forge. Puppet Tasks: Understand the difference between Puppet tasks and Puppet modules. Identify use cases for Puppet tasks. Invoke Puppet tasks from the command line and console. Capstone Lab: Create a modular set of roles and profiles Provide multiple implementations of blogging platforms. Course Conclusion Puppet Practitioner Training to be provided onsite for up to 15 Reclamation IOSG DO government employees and contractors. Travel and Expenses for the Puppet Trainer to perform training onsite at Denver Federal Center. Training schedule will be coordinated when training funds are approved and awarded. Reclamation IT is looking at scheduling this Puppet Practitioner training between March and April of 2019. Tasks of training to be completed by contractor: The contractor conducting the Puppet Practitioner training, will complete the following objectives during the period of training: Advanced Puppet language constructs to write more elegant code Using data structures to create resources programmatically Using custom facts to expose information about nodes Module design concepts and best practices Methods for testing Puppet code and infrastructure Understanding the difference between Puppet tasks and Puppet modules Troubleshooting techniques and standard log files The roles & profiles design pattern and benefits Different methods for managing portions of files Contributing modules to the community via the Puppet Forge 3Sharing functionality between classes using inheritance This RFI shall not be considered as a request for proposal or as an obligation on the part of the Government to acquire any products or services. No entitlement to payment of direct or indirect costs or charges by the Government will arise as a result of the contractor submission of this RFI or the Government's use of such information. The Government reserves the right to reject, in whole or in part, any contractor's input resulting from this RFI. No contract will be awarded as a result of this announcement. Data submitted in response to this RFI will not be returned. INSTRUCTION FOR RFI SUBMISSION: After review of this information, interested parties may submit a response in an electronic format via email to Christina Mohamed cmohamed@usbr.gov no later than February 14, 2019 11:00 AM MDT. Electronic files should be in Microsoft Office Word or PDF format. All information should be UNCLASSIFIED material only. Respondents should include as part of their submission: a. A synopsis of the company's capabilities in this area. b. GSA Number/NASA SEWP Number (or both) if applicable c. DUNS Number d. Company Name e. Company Address f. Business size, SDVOSB, HUBZone, or Woman owned status, as validated via the System for Award Administration (SAM). All offers must register on the SAM located at http://www.SAM.gov g. Company point of contact, phone and email address. h. Past work experience. If you have experience working with other Federal Agencies and/or commercial businesses of similar size and scope, please include agency and/or business name contract number (if applicable), amount and type of contract (e.g. FFP, T&M, Labor hour etc). Any company proprietary information must be marked as such, the RFI information should not exceed a total of 10 one-sided 8 1/2x11 pages, with one inch margins, and font no smaller than 12 point.
Links ()
Attachments ()
Data sourced from SAM.gov.
View Official Posting »