- Mastering Puppet 5
- Ryan Russell Yates Jason Southgate
- 307字
- 2021-07-16 17:46:11
Profiles
First, let's take a step back and consider what we want to achieve with profiles.
The overarching exercise is to produce usable chunks of technology that can be fitted together, in a building-brick fashion, to compose what we call in the industry these days technology stacks or solution stacks. The most well-known example of a stack would be the LAMP stack (Linux, Apache, MySQL, PHP), and more recently, Ruby or Python have sometimes superseded PHP as the primary scripting language. Node.js is being rapidly adopted across the industry, too.
Considering the LAMP stack, what we want to do is create chunks of technology for the Apache, MySQL, and PHP components. Profiles are, therefore, these smaller chunks of technology that will eventually comprise these full solution stacks. Profiles are the three building bricks that we piece together, as follows:

Let's look at this LAMP stack with some fully functional Puppet domain specific language (DSL) code:
# LAMP stack profiles
# apache profile
class profile::web::apache (
String $directory = '/var/www',
String $vhost,
) {
include apache
apache::vhost { $vhost:
port => '80',
docroot => "/var/www/${vhost}",
}
}
# mysql profile
class profile::db::mysql (
String $username = '/var/www',
String $password,
) {
include mysql::server
mysql::db{ 'mysqldb':
user => $username,
password => $password,
grant => 'ALL',
}
}
# php profile
class profile::programming::php
{
class { '::php':
ensure => latest,
manage_repos => true,
fpm => true,
dev => true,
composer => true,
pear => true,
phpunit => false,
settings => {
'PHP/max_execution_time' => '90',
'PHP/max_input_time' => '300',
'PHP/memory_limit' => '64M',
'PHP/post_max_size' => '32M',
'PHP/upload_max_filesize' => '32M',
'Date/date.timezone' => 'Europe/Berlin',
},
}
}
As you can see, in these classes, we are producing an abstraction for the remaining, AMP section of the LAMP stack and encapsulating the functionality of the underlying component modules. Linux is already installed, of course!
- Flutter App開發(fā):從入門到實(shí)戰(zhàn)
- 新手學(xué)修手機(jī)
- MPLS在SDN時(shí)代的應(yīng)用
- 愛上單片機(jī)(第2版)
- 通信原理
- 數(shù)據(jù)鏈理論與系統(tǒng)
- 通信電子線路
- 現(xiàn)代交換技術(shù)實(shí)用教程
- 短距離無線通信系統(tǒng)技術(shù)
- 基站主設(shè)備及配套設(shè)備維護(hù)
- 圖表細(xì)說電子元器件
- 4G核心網(wǎng)絡(luò)規(guī)劃與設(shè)計(jì)
- Wireshark網(wǎng)絡(luò)分析的藝術(shù)
- 教你快速看懂電子電路圖
- 電磁兼容原理與技術(shù)