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)