Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .fixtures.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
fixtures:
repositories:
stdlib: "git://github.com/puppetlabs/puppetlabs-stdlib.git"
mysql: "https://github.com/example42/puppet-mysql"
user: "https://github.com/example42/puppet-user"
stdmod: "git://github.com/stdmod/stdmod.git"
nginx: "git://github.com/netmanagers/puppet-nginx.git"
apache: "git://github.com/example42/puppet-apache.git"
php5fpm: "git://github.com/zertico/puppet-php5fpm.git"
puppi: "git://github.com/example42/puppi.git"
symlinks:
deploy_php: "#{source_dir}"
27 changes: 0 additions & 27 deletions .nodeset.yml

This file was deleted.

2 changes: 2 additions & 0 deletions .rspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
--format documentation
--color
3 changes: 3 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,6 @@ gem 'puppet-syntax'
gem 'puppet', ENV['PUPPET_VERSION'] || '~> 3.3.0'
gem 'vagrant-wrapper'
gem 'puppet-blacksmith'
gem 'beaker'
gem 'beaker-rspec'

1 change: 1 addition & 0 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ exclude_paths = [
PuppetLint.configuration.ignore_paths = exclude_paths
PuppetSyntax.exclude_paths = exclude_paths


desc "Run syntax, lint, and spec tests."
task :test => [
:syntax,
Expand Down
130 changes: 67 additions & 63 deletions manifests/apache.pp
Original file line number Diff line number Diff line change
@@ -1,36 +1,37 @@
# Define deploy_php::apache
#
define deploy_php::apache (
$createdb = true,
$mysql_password = '',
$mysql_database_name = "${name}",
$mysql_user = "${name}",
$mysql_database_name = $name,
$mysql_user = $name,
$mysql_grantfilepath = '/root/puppet/mysql',
$system_create_user = true,
$system_user_homedir_mode = '0711',
$system_user_uid = '',
$system_user_tag = 'vhosts',
$system_username = "${name}",
$system_username = $name,
$system_username_password = absent,
$webserver_aliases = '',
$webserver_documentroot = "/home/vhosts/${name}/public_html/",
$webserver_create_documentroot = true,
$webserver_template = 'virtualhost.conf.erb',
$webserver_template_path = "deploy_php/apache",
$application = ''
) {
$webserver_template_path = 'deploy_php/apache',
$application = ''
) {

$bool_system_create_user=any2bool($system_create_user)
$real_mysql_database_name = replacedot("${mysql_database_name}")

$real_mysql_database_name = replacedot($mysql_database_name)
if strlength($mysql_user) > 16 {
$real_mysql_user = changelength(replacedot("${mysql_user}"), '15')
$real_mysql_user = changelength(replacedot($mysql_user), '15')
} else {
$real_mysql_user = replacedot($mysql_user)
$real_mysql_user = replacedot($mysql_user)
}

if strlength($system_username) > 32 {
$real_system_username_length = changelength($system_username, '31')
$real_system_username_length = changelength($system_username, '31')
} else {
$real_system_username_length = $system_username
$real_system_username_length = $system_username
}

$real_system_user_uid = $system_user_uid ? {
Expand All @@ -39,80 +40,83 @@
}

$real_mysql_password = $mysql_password ? {
'' => "${name}",
'' => $name,
default => $mysql_password,
}

$real_system_username = $bool_system_create_user ? {
false => $real_system_username_length ? {
"$name" => 'www-data',
default => "${real_system_username_length}",
$name => 'www-data',
default => $real_system_username_length,
},
default => "${real_system_username_length}",
default => $real_system_username_length,
}

$real_webserver_template_path = $webserver_template ? {
"virtualhost.conf.erb" => "deploy_php/apache",
default => "hosts/$fqdn/apache",
'virtualhost.conf.erb' => 'deploy_php/apache',
default => "hosts/${::fqdn}/apache",
}

if $system_create_user == true {
user::managed { "${real_system_username}":
name_comment => "${name}",
user::managed { $real_system_username:
name_comment => $name,
homedir => "/home/vhosts/${name}",
managehome => true,
password => "${system_username_password}",
password => $system_username_password,
password_crypted => false,
uid => "${real_system_user_uid}",
homedir_mode => "${system_user_homedir_mode}",
tag => "${system_user_tag}",
password_salt => "65941380",
require => File["${deploy_php::dir_path_webserver}"],
uid => $real_system_user_uid,
homedir_mode => $system_user_homedir_mode,
tag => $system_user_tag,
password_salt => '65941380',
require => File[$deploy_php::dir_path_webserver]
}

apache::virtualhost { "${name}":
aliases => "www.${name} $webserver_aliases",
documentroot => "$webserver_documentroot",
require => User["${real_system_username}"],
owner => "${real_system_username}",
groupowner => "${real_system_username}",
templatepath => "${real_webserver_template_path}",
templatefile => "${webserver_template}",
create_docroot => "${webserver_create_documentroot}",
}
} else {
apache::virtualhost { "${name}":
aliases => "www.${name} $webserver_aliases",
documentroot => "$webserver_documentroot",
templatepath => "${webserver_template_path}",
templatefile => "${webserver_template}",
owner => "${real_system_username}",
groupowner => "${real_system_username}",
create_docroot => "${webserver_create_documentroot}",
}
apache::virtualhost { $name:
aliases => "www.${name} ${webserver_aliases}",
documentroot => $webserver_documentroot,
require => User[$real_system_username],
owner => $real_system_username,
groupowner => $real_system_username,
templatepath => $real_webserver_template_path,
templatefile => $webserver_template,
create_docroot => $webserver_create_documentroot,
}
} else {
apache::virtualhost { $name:
aliases => "www.${name} ${webserver_aliases}",
documentroot => $webserver_documentroot,
templatepath => $webserver_template_path,
templatefile => $webserver_template,
owner => $real_system_username,
groupowner => $real_system_username,
create_docroot => $webserver_create_documentroot,
}
}
if $createdb == true {

require mysql

mysql::grant { "${real_mysql_database_name}":
mysql_db => "${real_mysql_database_name}",
mysql_user => "${real_mysql_user}",
mysql_password => "${real_mysql_password}",
mysql::grant { $real_mysql_database_name:
mysql_db => $real_mysql_database_name,
mysql_user => $real_mysql_user,
mysql_password => $real_mysql_password,
mysql_privileges => 'ALL',
mysql_host => 'localhost',
mysql_grant_filepath => "${mysql_grantfilepath}",
mysql_grant_filepath => $mysql_grantfilepath,
}
}

if $application == 'wordpress' {
deploy_php::app::wordpress::v1 { $real_system_username:
db => $real_mysql_database_name,
db_user => $real_mysql_user,
db_pass => $real_mysql_password,
db_host => 'localhost',
require => User::Managed[$real_system_username]
}
}

if $application == 'wordpress' {
deploy_php::app::wordpress::v1 { "${real_system_username}":
db => "${real_mysql_database_name}",
db_user => "${real_mysql_user}",
db_pass => "${real_mysql_password}",
db_host => 'localhost',
require => User::Managed["${real_system_username}"]
}
}
if $application == 'joomla' {
deploy_php::app::joomla::v1 { $real_system_username:
require => User::Managed[$real_system_username]
}
}
}
34 changes: 34 additions & 0 deletions manifests/app/joomla/v1.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#Define deploy_php::app::joomla::v1
#
define deploy_php::app::joomla::v1 (
$url = 'http://joomlacode.org/gf/download/frsrelease/19239/158104/Joomla_3.2.3-Stable-Full_Package.zip',
$complete_path = "/home/vhosts/${name}/public_html/",
$directory = "/root/puppet/joomla/${name}",
$typeOfCompression = 'zip'
){

$real_typeOfCompression = $typeOfCompression ? {
'zip' => 'unzip',
'tar.gz' => 'tar --strip-components 1 -zxf'
}


file { $directory:
ensure => directory,
owner => 'root',
group => 'root',
}

puppi::netinstall { "netinstall_joomla_${name}":
url => $url,
extract_command => $real_typeOfCompression,
destination_dir => "${directory}/install",
extracted_dir => '.',
owner => $name,
group => $name,
preextract_command => '',
postextract_command => "[ -d ${complete_path} ] || mkdir ${complete_path} && mv ${directory}/install/* ${complete_path}",
work_dir => $directory,
require => File[$directory],
}
}
73 changes: 37 additions & 36 deletions manifests/app/wordpress/v1.pp
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#Define deploy_php::app::wordpress::v1
#
define deploy_php::app::wordpress::v1 (
$db,
$db_user,
Expand All @@ -6,53 +8,52 @@
$user_name = $title,
$complete_path = "/home/vhosts/${name}/public_html/",
$directory = "/root/puppet/wordpress/${name}",
$which_server = 'nginx',
$groups = $title ) {
$groups = $title,
$url = 'http://wordpress.org/latest.tar.gz',
$typeOfCompression = 'tar.gz'
) {

$auth_key = sha1("auth_key$name")
$secure_auth_key = sha1("secure_auth_key$name")
$logged_in_key = sha1("logged_in_key$name")
$nonce_key = sha1("nonce_key$name")
$auth_salt = sha1("auth_salt$name")
$secure_auth_salt = sha1("secure_auth_salt$name")
$logged_in_salt = sha1("logged_in_salt$name")
$nonce_salt = sha1("nonce_salt$name")
$auth_key = sha1("auth_key${name}")
$secure_auth_key = sha1("secure_auth_key${name}")
$logged_in_key = sha1("logged_in_key${name}")
$nonce_key = sha1("nonce_key${name}")
$auth_salt = sha1("auth_salt${name}")
$secure_auth_salt = sha1("secure_auth_salt${name}")
$logged_in_salt = sha1("logged_in_salt${name}")
$nonce_salt = sha1("nonce_salt${name}")

if $which_server == 'apache2' {
$groups = 'www-data'
file { "${complete_path}.htaccess":
ensure => "file",
group => "${groups}",
mode => "0755",
}
$real_typeOfCompression = $typeOfCompression ? {
'zip' => 'unzip',
'tar.gz' => 'tar --strip-components 1 -zxf'
}
file { "${directory}":
ensure => directory,
owner => "root",
group => "root",

file { $directory:
ensure => directory,
owner => 'root',
group => 'root',
}

puppi::netinstall { "netinstall_wordpress_${user_name}_${name}":
url => "http://wordpress.org/latest.tar.gz",
extract_command => 'tar --strip-components 1 -zxf',
puppi::netinstall { "netinstall_wordpress_${user_name}":
url => $url,
extract_command => $real_typeOfCompression,
destination_dir => "${directory}/install",
extracted_dir => ".",
owner => "${user_name}",
group => "${user_name}",
preextract_command => "",
extracted_dir => '.',
owner => $user_name,
group => $user_name,
preextract_command => '',
postextract_command => "[ -d ${complete_path} ] || mkdir ${complete_path} && mv ${directory}/install/* ${complete_path}",
work_dir => "${directory}",
require => File["${directory}"],
}
work_dir => $directory,
require => File[$directory],
}

file { "${complete_path}wp-config.php":
ensure => present,
content => template('deploy_php/wordpress/wp-config.php.erb'),
mode => "0755",
owner => "${user_name}",
group => "${user_name}",
mode => '0755',
owner => $user_name,
group => $user_name,
replace => false,
require => puppi::netinstall["netinstall_wordpress_${user_name}_${name}"],
require => Puppi::Netinstall["netinstall_wordpress_${user_name}"],
}

}
Loading