devops:puppet
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| devops:puppet [2016/04/18 09:16] – [Classes Metaparameter] skipidar | devops:puppet [2023/11/01 07:15] (current) – ↷ Page moved from camunda:devops:puppet to devops:puppet skipidar | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ===== Puppet ===== | ===== Puppet ===== | ||
| + | |||
| + | The Learning VM TUtorial is here: https:// | ||
| + | |||
| + | Te learning VM is available here: https:// | ||
| + | |||
| ==== Glossary ==== | ==== Glossary ==== | ||
| Line 36: | Line 41: | ||
| * describe entire system role as " | * describe entire system role as " | ||
| * some abstract aspect as " | * some abstract aspect as " | ||
| + | |||
| + | To **define** a class - means to describe it in a module, so that it can be used on nodes. \\ | ||
| + | To **declare** a class - means to apply the class to a node. So it will execute there and do its modifications, | ||
| + | |||
| + | <fc # | ||
| + | |||
| </ | </ | ||
| + | | defined resource types | like classes, but appliable to nodes multiple times | | ||
| |node definition | The task of configuring which classes will be applied to a given node - is called **node classification**. \\ Node definitions are a puppet concept to write node classification down. | | |node definition | The task of configuring which classes will be applied to a given node - is called **node classification**. \\ Node definitions are a puppet concept to write node classification down. | | ||
| |.pp manifests|< | |.pp manifests|< | ||
| Line 50: | Line 62: | ||
| |Puppet master | The puppet server which configures the puppet agents| | |Puppet master | The puppet server which configures the puppet agents| | ||
| |Puppet agent| Installed on machines, which should be controlled by puppet (by puppet master)| | |Puppet agent| Installed on machines, which should be controlled by puppet (by puppet master)| | ||
| - | |||
| Line 172: | Line 183: | ||
| </ | </ | ||
| + | |||
| + | ==== Defined Resource types ==== | ||
| + | |||
| + | * Use **define** keyword instead of **class** | ||
| + | * **$title** is a special variable, which must be unique on a node and is mandatory | ||
| + | * Binding of parameter variables ($content, $password) to values happens in parallel, meaning that you cannot use the value of one parameter to set another. The exception is the $title variable. | ||
| + | |||
| + | |||
| + | # / | ||
| + | < | ||
| + | define web_user:: | ||
| + | $content | ||
| + | $password = undef, | ||
| + | ) { | ||
| + | $home_dir | ||
| + | $public_html = " | ||
| + | user { $title: | ||
| + | ensure | ||
| + | password => $password, | ||
| + | } | ||
| + | file { [$home_dir, $public_html]: | ||
| + | ensure => directory, | ||
| + | owner => $title, | ||
| + | group => $title, | ||
| + | mode => ' | ||
| + | } | ||
| + | file { " | ||
| + | ensure | ||
| + | owner => $title, | ||
| + | group => $title, | ||
| + | replace => false, | ||
| + | content => $content, | ||
| + | mode => ' | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | **Declaration** of users on a node. \\ | ||
| + | ' | ||
| + | |||
| + | # / | ||
| + | < | ||
| + | web_user:: | ||
| + | web_user:: | ||
| + | content | ||
| + | password => pw_hash(' | ||
| + | } | ||
| + | </ | ||
| ==== Classes Metaparameter ==== | ==== Classes Metaparameter ==== | ||
| Line 265: | Line 324: | ||
| defines the default node configuration. | defines the default node configuration. | ||
| + | ==== Node setup ==== | ||
| + | |||
| + | Puppet master provides a bash script for setting up nodes: | ||
| + | < | ||
| + | curl -k https://< | ||
| + | </ | ||
| + | |||
| + | Puppet MASTER keeps signed certificates of each Node, which is a part of the infrastructure. | ||
| + | To involve a node - sighn its certificate. | ||
| + | |||
| + | List all unsigned certificates of Nodes. Executable on master. | ||
| + | < | ||
| + | puppet cert list | ||
| + | </ | ||
| + | |||
| + | Sign a certificate of node named **webserver.learning.puppetlabs.vm ** | ||
| + | < | ||
| + | puppet cert sign webserver.learning.puppetlabs.vm | ||
| + | </ | ||
| ==== Variables ==== | ==== Variables ==== | ||
| Line 595: | Line 673: | ||
| yamldir = / | yamldir = / | ||
| </ | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== Orchestration ===== | ||
| + | |||
| + | Details are here: https:// | ||
| + | |||
| + | Orchestration allows to install dependent applications in the right order. | ||
| + | |||
| + | It works as following: | ||
| + | - setup the node to know the orchestrator | ||
| + | - create an Application, | ||
| + | - setup orchestrator user with the rights | ||
| + | - setup an **artificial, | ||
| + | - define, which node **produces** data to fill artificial, public resource. Which node consumes data from artificial, public resource. | ||
| + | - declare the resource | ||
| + | - in site.pp declare - which part of the application will be installed on which node. | ||
| + | |||
| + | {{http:// | ||
devops/puppet.1460970976.txt.gz · Last modified: (external edit)
