Configuration Management
Configuration management is the process of defining and maintaining the state of an organization's infrastructure. It involves keeping track of all the systems, applications, and services running within an organization and ensuring that they are all configured and managed in a consistent and repeatable manner.
Configuration management tools, like Puppet, provide a way to automate this process, reducing the need for manual intervention and minimizing the potential for errors.
Puppet is a configuration management tool that allows you to define your infrastructure as code. This means that you can write code to describe how your infrastructure should be configured, and Puppet will automatically enforce that configuration across all the systems it manages.
Puppet uses a client-server architecture, where a Puppet master server controls a fleet of Puppet agents running on managed nodes. The Puppet master server holds the configuration data, while the Puppet agents apply the configurations to the nodes they manage.
If you are new to puppet, the best way to get started is to dive right in and start experimenting with it. Soon enough, you will be a puppet master (:joy: :joy:)
Read or Watch
- Introduction to configuration management
- Puppet Resource file type
- Puppet's declarative language: Modelling instead of scripting
- Puppet-lint
- Puppet emacs mode
Your Ubuntu 20.04 VM should have Puppet 5.5 preinstalled.
$ apt-get install -y ruby=1:2.7+1 --allow-downgrades
$ apt-get install -y ruby-augeas
$ apt-get install -y ruby-shadow
$ apt-get install -y puppet
You do not need to attempt to upgrade versions. This project is simply a set of tasks to familiarize you with the basic level syntax which is virtually identical in newer versions of Puppet.
$ gem install puppet-lint