undefined India | Robotic Restaurant Kitchen in Chennai
About Puppet
Make software discovery, management, and delivery automatic and pervasive with Puppet.

In computing, Puppet is an open-core software configuration management tool. It runs on many Unix-like systems as well as on Microsoft Windows, and includes its own declarative language to describe system configuration.

Course Contents

The following are the course contents offered for Puppet

  • Why do we need Puppet anyway?
  • Keeping the configuration synchronized
  • Repeating changes across many servers
  • Self-updating documentation
  • Version control and history
  • Why not just write shell scripts?
  • Why not just use containers?
  • Why not just use serverless?
  • Configuration management tools
  • What is Puppet?
  • Resources and attributes
  • Puppet architectures
  • Getting ready for Puppet
  • Installing Git and downloading the repo
  • Installing VirtualBox and Vagrant
  • Running your Vagrant VM
  • Troubleshooting Vagrant
  • Hello
  • Understanding the code
  • Modifying existing files
  • Dry-running Puppet
  • How Puppet applies the manifest
  • Creating a file of your own
  • Managing packages
  • How Puppet applies the manifest
  • Exercise
  • Querying resources with the puppet resource
  • Services
  • Getting help on resources with puppet describe
  • The package-file-service pattern
  • Notifying a linked resource
  • Resource ordering with require
  • What is version control?
  • Tracking changes
  • Sharing code
  • Creating a Git repo
  • Making your first commit
  • How often should I commit?
  • Branching
  • Distributing Puppet manifests
  • Creating a GitHub account and project
  • Pushing your repo to GitHub
  • Cloning the repo
  • Fetching and applying changes automatically
  • Writing a manifest to set up regular Puppet runs
  • Applying the run-puppet manifest
  • The run-puppet script
  • Testing automatic Puppet runs
  • Managing multiple nodes
  • Files
  • The path attribute
  • Managing whole files
  • Ownership
  • Permissions
  • Directories
  • Trees of files
  • Symbolic links
  • Packages
  • Uninstalling packages
  • Installing specific versions
  • Installing the latest version
  • Installing Ruby gems
  • Installing gems in Puppet's context
  • Using ensure_packages
  • Services
  • The hasstatus attribute
  • The pattern attribute
  • The hasrestart and restart attributes
  • Users
  • Creating users
  • The user resource
  • The group resource
  • Managing SSH keys
  • Removing users
  • Cron resources
  • Attributes of the cron resource
  • Randomizing cron jobs
  • Removing cron jobs
  • Exec resources
  • Automating manual interaction
  • Attributes of the exec resource
  • The user attribute
  • The onlyif and unless attributes
  • The refreshonly attribute
  • The logoutput attribute
  • The timeout attribute
  • How not to misuse exec resources
  • Introducing variables
  • Using Booleans
  • Interpolating variables in strings
  • Creating arrays
  • Declaring arrays of resources
  • Understanding hashes
  • Setting resource attributes from a hash
  • Introducing expressions
  • Meeting Puppet's comparison operators
  • Introducing regular expressions
  • Using conditional expressions
  • Making decisions with if statements
  • Choosing options with case statements
  • Finding out facts
  • Using the facts hash
  • Running the facter command
  • Accessing hashes of facts
  • Referencing facts in expressions
  • Using memory facts
  • Discovering networking facts
  • Providing external facts
  • Creating executable facts
  • Iterating over arrays
  • Using the each function
  • Iterating over hashes
  • Why Hiera?
  • Data needs to be maintained
  • Settings depend on nodes
  • Operating systems differ
  • The Hiera way
  • Setting up Hiera
  • Adding Hiera data to your Puppet repo
  • Troubleshooting Hiera
  • Querying Hiera
  • Typed lookups
  • Types of Hiera data
  • Single values
  • Boolean values
  • Arrays
  • Hashes
  • Interpolation in Hiera data
  • Using lookup()
  • Using alias()
  • Using literal()
  • The hierarchy
  • Dealing with multiple values
  • Merge behaviors
  • Data sources based on facts
  • What belongs in Hiera?
  • Creating resources with Hiera data
  • Building resources from Hiera arrays
  • Building resources from Hiera hashes
  • The advantages of managing resources with Hiera data
  • Managing secret data
  • Setting up GnuPG
  • Adding an encrypted Hiera source
  • Creating an encrypted secret
  • How Hiera decrypts secrets
  • Editing or adding encrypted secrets
  • Distributing the decryption key
  • Using Puppet Forge modules
  • What is the Puppet Forge?
  • Finding the module you need
  • Using r10k
  • Understanding the Puppetfile
  • Managing dependencies with generate-puppetfile
  • Using modules in your manifests
  • Using puppetlabs/mysql
  • Using puppetlabs/apache
  • Using puppet/archive
  • Exploring the standard library
  • Safely installing packages with ensure_packages
  • Modifying files in place with file_line
  • Introducing some other useful functions
  • The pry debugger
  • Writing your own modules
  • Creating a repo for your module
  • Writing the module code
  • Creating and validating the module metadata
  • Tagging your module
  • Installing your module
  • Applying your module
  • More complex modules
  • Uploading modules to Puppet Forge
  • Classes
  • The class keyword
  • Declaring parameters to classes
  • Automatic parameter lookup from Hiera data
  • Parameter data types
  • Available data types
  • Content type parameters
  • Range parameters
  • Flexible data types
  • Defined resource types
  • Type aliases
  • Managing classes with Hiera
  • Using include with lookup()
  • Common and per-node classes
  • Roles and profiles
  • Roles
  • Profiles
  • What are templates?
  • The dynamic data problem
  • Puppet template syntax
  • Using templates in your manifests
  • Referencing template files
  • Inline templates
  • Template tags
  • Computations in templates
  • Conditional statements in templates
  • Iteration in templates
  • Iterating over Facter data
  • Iterating over structured facts
  • Iterating over Hiera data
  • Working with templates
  • Passing parameters to templates
  • Validating template syntax
  • Rendering templates on the command line
  • Legacy ERB templates
  • Understanding containers
  • The deployment problem
  • Options for deployment
  • Introducing the container
  • What Docker does for containers
  • Deployment with Docker
  • Building Docker containers
  • The layered filesystem
  • Managing containers with Puppet
  • Managing Docker with Puppet
  • Installing Docker
  • Running a Docker container
  • Stopping a container
  • Running multiple instances of a container
  • Managing Docker images
  • Building images from Dockerfiles
  • Managing Dockerfiles
  • Building dynamic containers
  • Configuring containers with templates
  • Self-configuring containers
  • Persistent storage for containers
  • Host-mounted volumes
  • Docker volumes
  • Networking and orchestration
  • Connecting containers
  • Container orchestration
  • What is orchestration?
  • What orchestration tools are available?
  • Running Puppet inside containers
  • Are containers mini VMs or single processes?
  • Configuring containers with Puppet
  • Containers need Puppet too
  • Introducing the cloud
  • Automating cloud provisioning
  • Using CloudFormation
  • Using Terraform
  • Using Puppet
  • Setting up an Amazon AWS account
  • Creating an AWS account
  • Creating an IAM policy
  • Creating an IAM user
  • Storing your AWS credentials
  • Getting ready to use puppetlabs/aws
  • Creating a key pair
  • Installing the puppetlabs/aws module
  • Installing the AWS SDK gem
  • Creating EC2 instances with Puppet
  • Choosing an Amazon Machine Image (AMI)
  • Creating the EC2 instance
  • Accessing your EC2 instance
  • VPCs
  • The ec2_securitygroup resource
  • The ec2_instance resource
  • Managing custom VPCs and subnets
  • Creating an instance in a custom VPC
  • The ec2_vpc resource
  • The ec2_vpc_internet_gateway resource
  • The ec2_vpc_routetable resource
  • The ec2_vpc_subnet resource
  • Other AWS resource types
  • Provisioning AWS resources from Hiera data
  • Iterating over Hiera data to create resources
  • Cleaning up unused resources
  • Getting the demo repo
  • Copying the repo
  • Understanding the demo repo
  • The control repo
  • Module management
  • Classes
  • Roles
  • Profiles
  • Users and access control
  • SSH configuration
  • Sudoers configuration
  • Time zone and clock synchronization
  • Puppet configuration
  • The bootstrap process
  • Adapting the repo for your own use
  • Configuring users
  • Adding per-node data files and role classes
  • Modifying the bootstrap credentials
  • Bootstrapping a new node
  • Bootstrapping a Vagrant VM
  • Bootstrapping physical or cloud nodes
  • Using other distributions and providers

Have Question?

Contact us







Website:

robochef.co