官术网_书友最值得收藏!

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!

主站蜘蛛池模板: 贵溪市| 常山县| 鹤庆县| 尖扎县| 自治县| 永胜县| 潮安县| 遂川县| 青浦区| 客服| 平凉市| 雅江县| 清流县| 龙江县| 沙雅县| 南江县| 正镶白旗| 宁城县| 思南县| 南昌市| 山丹县| 宁化县| 盐源县| 阿勒泰市| 遵义市| 游戏| 汝城县| 韩城市| 张家口市| 子洲县| 宁海县| 靖边县| 镇宁| 鞍山市| 蕲春县| 榕江县| 东源县| 裕民县| 宝清县| 藁城市| 定兴县|