Initial commit of aegir puppet module
This commit is contained in:
commit
24f1e677c4
|
@ -0,0 +1,48 @@
|
|||
# aegir
|
||||
|
||||
## Module Description
|
||||
|
||||
This module is intended to install aegir simply.
|
||||
|
||||
## Requirements
|
||||
|
||||
Modules from forge.puppet.com:
|
||||
|
||||
* puppetlabs-stdlib (tested with 4.13.1)
|
||||
* puppetlabs-apt (tested with 2.3.0)
|
||||
|
||||
Currently only supports installation through debian packages.
|
||||
|
||||
## Setup
|
||||
|
||||
Nothing special.
|
||||
|
||||
## Usage
|
||||
|
||||
@TODO
|
||||
|
||||
## Reference
|
||||
|
||||
### Classes
|
||||
|
||||
#### Public Classes
|
||||
|
||||
* aegir::hostmaster
|
||||
|
||||
### Class: aegir::hostmaster
|
||||
|
||||
Debian package based hostmaster installation.
|
||||
|
||||
Parameters:
|
||||
|
||||
* database: A hash containing user, host, and password. Required.
|
||||
* frontend_url: The url for the hostmaster drupal installation. Optional, defaults to the fully qualified domain name.
|
||||
* version: The major aegir version to install. Optional, default: 3
|
||||
* user: The user name to use for the installation of aegir. Optional, default: aegir
|
||||
* home: The home directory of the user. Optional, default: /var/aegir
|
||||
* server: Which webserver to use. Optional, default: apache. Supports: apache2, nginx
|
||||
* release: Which release to use from the package source. Optional, default: stable.
|
||||
* makefile: If a custom makefile should be used, specify it here. Optional, default: ''
|
||||
* email: The email to set for the admin user in the hostmaster installation. Optional, default: '' (aegir will pick the user@fqdn).
|
||||
* working_copy: Keep the hostmaster platform git directories? Optional, default: false.
|
||||
* drush_version: Which version of drush to install with provision. Optional, default '' (stable).
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"name": "aegir",
|
||||
"version": "0.0.1",
|
||||
"author": "Kienan Stewart",
|
||||
"license": "GPL-3.0+",
|
||||
"summary": "A module for installing aegir",
|
||||
"operatingsystem_support": [
|
||||
{
|
||||
"operatingsystem": "Debian",
|
||||
"operatingsystemrelease": [ "wheezy", "jessie"]
|
||||
}
|
||||
],
|
||||
"dependencies": [
|
||||
{ "name": "puppetlabs/apt", "version_requirement": ">= 2.3.0"},
|
||||
{ "name": "puppetlabs/stdlib", "version_requirement": ">= 4.13.1"}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
# Installs a hostmaster on a debian system using the available repos.
|
||||
# This module should be called from a profile where the other major software
|
||||
# eg, webserver and db server are decided on.
|
||||
class aegir::hostmaster (
|
||||
# A hash with 'user', 'host', 'password'. Currently only mysql is supported by
|
||||
# aegir.
|
||||
$database,
|
||||
$frontend_url = $::fqdn,
|
||||
$version = 3,
|
||||
$user = 'aegir', # Unused
|
||||
$home = '/var/aegir', # Unused
|
||||
# The webserver, apache2 or nginx.
|
||||
$server = 'apache2',
|
||||
# Commonly available releases: stable, unstable.
|
||||
$release = 'stable',
|
||||
$makefile = '',
|
||||
$email = '',
|
||||
$working_copy = false,
|
||||
$drush_version = ''
|
||||
) {
|
||||
include apt
|
||||
#include stdlib
|
||||
apt::source { 'aegir':
|
||||
location => 'http://debian.aegirproject.org',
|
||||
release => $release,
|
||||
key => {
|
||||
id => '12782E2257B468806EF36D165ADF93A03376CCF9',
|
||||
source => 'http://debian.aegirproject.org/key.asc',
|
||||
},
|
||||
repos => 'main'
|
||||
}
|
||||
$package_name = "aegir${version}"
|
||||
$debconf_settings = [
|
||||
"${package_name}-hostmaster aegir/site string ${frontend_url}",
|
||||
"${package_name}-hostmaster aegir/db_password string ${database['password']}",
|
||||
"${package_name}-hostmaster aegir/db_host string ${database['host']}",
|
||||
"${package_name}-hostmaster aegir/db_user string ${database['user']}"
|
||||
]
|
||||
if $email {
|
||||
$debconf_settings += "${package_name}-hostmaster aegir/email string ${email}"
|
||||
}
|
||||
if $makefile {
|
||||
$debconf_settings += "${package_name}-hostmaster aegir/makefile string ${makefile}"
|
||||
}
|
||||
if $working_copy {
|
||||
$debconf_settings += "${package_name}-hostmaster aegir/working-copy boolean true"
|
||||
}
|
||||
if $drush_version {
|
||||
$debconf_settings += "aegir${version}-provision aegir/drush_version string ${drush_version}"
|
||||
}
|
||||
file { '/etc/dpkg/aegir.response':
|
||||
ensure => 'file',
|
||||
content => join($debconf_settings, "\n")
|
||||
}
|
||||
package { 'aegir':
|
||||
ensure => 'installed',
|
||||
name => $package_name,
|
||||
responsefile => '/etc/dpkg/aegir.response',
|
||||
require => [
|
||||
Apt::Source['aegir'],
|
||||
Class['apt::update'],
|
||||
File['/etc/dpkg/aegir.response']
|
||||
]
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue