diff --git a/files/functions b/files/functions index ed21d36..c2131ed 100644 --- a/files/functions +++ b/files/functions @@ -51,26 +51,42 @@ function site_init { chown -R $FILE_OWNER:$FILE_GROUP $target_dir umask 0022 # link configuration files managed by puppet - ln -sf /etc/openstackid/environment.php $target_dir/bootstrap/environment.php - ln -sf /etc/openstackid/recaptcha.php $target_dir/app/config/packages/greggilbert/recaptcha/$LARAVEL_ENV/config.php - ln -sf /etc/openstackid/database.php $target_dir/app/config/$LARAVEL_ENV/database.php - ln -sf /etc/openstackid/app.php $target_dir/app/config/$LARAVEL_ENV/app.php - ln -sf /etc/openstackid/log.php $target_dir/app/config/$LARAVEL_ENV/log.php - ln -sf /etc/openstackid/server.php $target_dir/app/config/$LARAVEL_ENV/server.php - ln -sf /etc/openstackid/mail.php $target_dir/app/config/$LARAVEL_ENV/mail.php - # convert app/storage into symlink and set permissions - mv $target_dir/app/storage $SITE_ROOT/ - chmod 02770 $SITE_ROOT/storage - find $SITE_ROOT/storage/ -type d -exec chmod 0775 {} \; - find $SITE_ROOT/storage/ -type f -exec chmod 0664 {} \; - rm -rf $target_dir/app/storage - ln -s $SITE_ROOT/storage $target_dir/app + + if [[ $LARAVEL_VERSION -eq 4 ]]; then + ln -sf /etc/openstackid/environment.php $target_dir/bootstrap/environment.php + ln -sf /etc/openstackid/recaptcha.php $target_dir/app/config/packages/greggilbert/recaptcha/$LARAVEL_ENV/config.php + ln -sf /etc/openstackid/database.php $target_dir/app/config/$LARAVEL_ENV/database.php + ln -sf /etc/openstackid/app.php $target_dir/app/config/$LARAVEL_ENV/app.php + ln -sf /etc/openstackid/log.php $target_dir/app/config/$LARAVEL_ENV/log.php + ln -sf /etc/openstackid/server.php $target_dir/app/config/$LARAVEL_ENV/server.php + ln -sf /etc/openstackid/mail.php $target_dir/app/config/$LARAVEL_ENV/mail.php + # convert app/storage into symlink and set permissions + mv $target_dir/app/storage $SITE_ROOT/ + chmod 02770 $SITE_ROOT/storage + find $SITE_ROOT/storage/ -type d -exec chmod 0775 {} \; + find $SITE_ROOT/storage/ -type f -exec chmod 0664 {} \; + rm -rf $target_dir/app/storage + ln -s $SITE_ROOT/storage $target_dir/app + fi + + if [[ $LARAVEL_VERSION -eq 5 ]]; then + ln -sf /etc/openstackid/.env $target_dir/.env + # convert app/storage into symlink and set permissions + mv $target_dir/storage $SITE_ROOT/ + chmod 02770 $SITE_ROOT/storage + find $SITE_ROOT/storage/ -type d -exec chmod 0775 {} \; + find $SITE_ROOT/storage/ -type f -exec chmod 0664 {} \; + rm -rf $target_dir/storage + ln -s $SITE_ROOT/storage $target_dir + fi + # populate application database cd $target_dir php artisan migrate --env=$LARAVEL_ENV if [[ $USE_DB_SEEDING -eq 1 ]]; then php artisan db:seed --env=$LARAVEL_ENV fi + update_node install_bower # activate site @@ -181,17 +197,28 @@ function site_update { fi chown -R $FILE_OWNER:$FILE_GROUP $target_dir umask 0022 + # link configuration files managed by puppet - ln -sf /etc/openstackid/environment.php $target_dir/bootstrap/environment.php - ln -sf /etc/openstackid/recaptcha.php $target_dir/app/config/packages/greggilbert/recaptcha/$LARAVEL_ENV/config.php - ln -sf /etc/openstackid/database.php $target_dir/app/config/$LARAVEL_ENV/database.php - ln -sf /etc/openstackid/app.php $target_dir/app/config/$LARAVEL_ENV/app.php - ln -sf /etc/openstackid/log.php $target_dir/app/config/$LARAVEL_ENV/log.php - ln -sf /etc/openstackid/server.php $target_dir/app/config/$LARAVEL_ENV/server.php - ln -sf /etc/openstackid/mail.php $target_dir/app/config/$LARAVEL_ENV/mail.php - # link shared app/storage directory - rm -rf $target_dir/app/storage - ln -s $SITE_ROOT/storage $target_dir/app + if [[ $LARAVEL_VERSION -eq 4 ]]; then + ln -sf /etc/openstackid/environment.php $target_dir/bootstrap/environment.php + ln -sf /etc/openstackid/recaptcha.php $target_dir/app/config/packages/greggilbert/recaptcha/$LARAVEL_ENV/config.php + ln -sf /etc/openstackid/database.php $target_dir/app/config/$LARAVEL_ENV/database.php + ln -sf /etc/openstackid/app.php $target_dir/app/config/$LARAVEL_ENV/app.php + ln -sf /etc/openstackid/log.php $target_dir/app/config/$LARAVEL_ENV/log.php + ln -sf /etc/openstackid/server.php $target_dir/app/config/$LARAVEL_ENV/server.php + ln -sf /etc/openstackid/mail.php $target_dir/app/config/$LARAVEL_ENV/mail.php + # link shared app/storage directory + rm -rf $target_dir/app/storage + ln -s $SITE_ROOT/storage $target_dir/app + fi + + if [[ $LARAVEL_VERSION -eq 5 ]]; then + ln -sf /etc/openstackid/.env $target_dir/.env + # link shared app/storage directory + rm -rf $target_dir/storage + ln -s $SITE_ROOT/storage $target_dir + fi + # populate application database cd $target_dir php artisan migrate --env=$LARAVEL_ENV diff --git a/manifests/init.pp b/manifests/init.pp index e49835f..4eed7ce 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -29,6 +29,7 @@ class openstackid ( $ss_db_name = '', $redis_port = '', $redis_host = '', + $redis_db = 0, $redis_password = '', $vhost_name = $::fqdn, $robots_txt_source = '', @@ -62,19 +63,33 @@ class openstackid ( $email_smtp_server_password = '', $use_db_seeding = false, $docroot = '/srv/openstackid/w/public', + $laravel_version = 4, + $app_log_level = 'error', + $app_log_email_level = 'error', + $db_log_enabled = false, + $banning_enabled = true, + $app_debug = false, + $app_locale = 'en', + $curl_verify_ssl_cert = true, + $curl_allow_redirect = false, + $curl_timeout = 60, + $assets_base_url = 'https://www.openstack.org/', + $cache_driver = 'redis', + $session_driver = 'redis', + $session_cookie_secure = false, ) { # php packages needed for openid server $php5_packages = [ - 'php5-common', - 'php5-curl', - 'php5-cli', - 'php5-mcrypt', - 'php5-mysqlnd', - 'php5-fpm', - 'php5-json', - 'php5-gmp', - ] + 'php5-common', + 'php5-curl', + 'php5-cli', + 'php5-mcrypt', + 'php5-mysqlnd', + 'php5-fpm', + 'php5-json', + 'php5-gmp', + ] package { $php5_packages: ensure => present, @@ -138,81 +153,99 @@ class openstackid ( mode => '0755', } - file { '/etc/openstackid/database.php': - ensure => present, - content => template('openstackid/database.php.erb'), - owner => 'root', - group => 'www-data', - mode => '0640', - require => [ - File['/etc/openstackid'], - ] - } + if($laravel_version == 4 ){ - file { '/etc/openstackid/app.php': - ensure => present, - content => template('openstackid/app.php.erb'), - owner => 'root', - group => 'www-data', - mode => '0640', - require => [ - File['/etc/openstackid'], - ] - } - - file { '/etc/openstackid/log.php': - ensure => present, - content => template('openstackid/log.php.erb'), - owner => 'root', - group => 'www-data', - mode => '0640', - require => [ - File['/etc/openstackid'], - ] - } - - file { '/etc/openstackid/environment.php': - ensure => present, - content => template('openstackid/environment.php.erb'), - owner => 'root', - group => 'www-data', - mode => '0640', - require => [ - File['/etc/openstackid'], - ] - } - - file { '/etc/openstackid/recaptcha.php': + # laravel 4.X configuration files + file { '/etc/openstackid/database.php': ensure => present, - content => template('openstackid/recaptcha.php.erb'), + content => template('openstackid/lv4/database.php.erb'), owner => 'root', group => 'www-data', mode => '0640', require => [ File['/etc/openstackid'], ] - } + } - file { '/etc/openstackid/server.php': + file { '/etc/openstackid/app.php': ensure => present, - content => template('openstackid/server.php.erb'), + content => template('openstackid/lv4/app.php.erb'), owner => 'root', group => 'www-data', mode => '0640', require => [ File['/etc/openstackid'], ] - } + } - file { '/etc/openstackid/mail.php': - ensure => present, - content => template('openstackid/mail.php.erb'), - owner => 'root', - group => 'www-data', - mode => '0640', - require => [ - File['/etc/openstackid'], - ] + file { '/etc/openstackid/log.php': + ensure => present, + content => template('openstackid/lv4/log.php.erb'), + owner => 'root', + group => 'www-data', + mode => '0640', + require => [ + File['/etc/openstackid'], + ] + } + + file { '/etc/openstackid/environment.php': + ensure => present, + content => template('openstackid/lv4/environment.php.erb'), + owner => 'root', + group => 'www-data', + mode => '0640', + require => [ + File['/etc/openstackid'], + ] + } + + file { '/etc/openstackid/recaptcha.php': + ensure => present, + content => template('openstackid/lv4/recaptcha.php.erb'), + owner => 'root', + group => 'www-data', + mode => '0640', + require => [ + File['/etc/openstackid'], + ] + } + + file { '/etc/openstackid/server.php': + ensure => present, + content => template('openstackid/lv4/server.php.erb'), + owner => 'root', + group => 'www-data', + mode => '0640', + require => [ + File['/etc/openstackid'], + ] + } + + file { '/etc/openstackid/mail.php': + ensure => present, + content => template('openstackid/lv4/mail.php.erb'), + owner => 'root', + group => 'www-data', + mode => '0640', + require => [ + File['/etc/openstackid'], + ] + } + + } + else + { + file { '/etc/openstackid/.env': + ensure => present, + content => template('openstackid/lv5/.env.erb'), + owner => 'root', + group => 'www-data', + mode => '0640', + require => [ + File['/etc/openstackid'], + ] + } } $docroot_dirs = [ '/srv/openstackid' ] @@ -229,7 +262,7 @@ class openstackid ( mpm_module => false, } - # apache mpm event connectio tweaking + # apache mpm event connection tweaking class {'::apache::mod::event': serverlimit => 128, startservers => 3, @@ -314,24 +347,60 @@ class openstackid ( require => Deploy['deploytool'], } + if($laravel_version == 4 ){ + + $deploy_site_requires = [ + File['/opt/deploy/conf.d/openstackid.conf'], + Apache::Vhost::Custom[$vhost_name], + File['/etc/openstackid/recaptcha.php'], + File['/etc/openstackid/database.php'], + File['/etc/openstackid/log.php'], + File['/etc/openstackid/environment.php'], + File['/etc/openstackid/server.php'], + File['/etc/openstackid/app.php'], + Package['curl'], + Package[$php5_packages] , + Class['::nodejs'], + ] + + $update_site_requires = [ + File['/opt/deploy/conf.d/openstackid.conf'], + Apache::Vhost::Custom[$vhost_name], + File['/etc/openstackid/recaptcha.php'], + File['/etc/openstackid/database.php'], + File['/etc/openstackid/app.php'], + File['/etc/openstackid/log.php'], + File['/etc/openstackid/environment.php'], + File['/etc/openstackid/server.php'], + Package[$php5_packages] , + Class['::nodejs'], + ] + } + else{ + $deploy_site_requires = [ + File['/opt/deploy/conf.d/openstackid.conf'], + Apache::Vhost::Custom[$vhost_name], + File['/etc/openstackid/.env'], + Package['curl'], + Package[$php5_packages] , + Class['::nodejs'], + ] + + $update_site_requires = [ + File['/opt/deploy/conf.d/openstackid.conf'], + Apache::Vhost::Custom[$vhost_name], + File['/etc/openstackid/.env'], + Package[$php5_packages] , + Class['::nodejs'], + ] + } + exec { 'deploy-site': path => '/usr/local/bin:/usr/bin:/bin', command => '/opt/deploy/deploy.sh init openstackid', onlyif => '/opt/deploy/deploy.sh status openstackid | grep N/A', logoutput => on_failure, - require => [ - File['/opt/deploy/conf.d/openstackid.conf'], - Apache::Vhost::Custom[$vhost_name], - File['/etc/openstackid/recaptcha.php'], - File['/etc/openstackid/database.php'], - File['/etc/openstackid/log.php'], - File['/etc/openstackid/environment.php'], - File['/etc/openstackid/server.php'], - File['/etc/openstackid/app.php'], - Package['curl'], - Package[$php5_packages] , - Class['::nodejs'], - ], + require => $deploy_site_requires, } exec { 'update-site': @@ -339,18 +408,7 @@ class openstackid ( command => '/opt/deploy/deploy.sh update openstackid', onlyif => '/opt/deploy/deploy.sh status openstackid | grep UPDATE', logoutput => on_failure, - require => [ - File['/opt/deploy/conf.d/openstackid.conf'], - Apache::Vhost::Custom[$vhost_name], - File['/etc/openstackid/recaptcha.php'], - File['/etc/openstackid/database.php'], - File['/etc/openstackid/app.php'], - File['/etc/openstackid/log.php'], - File['/etc/openstackid/environment.php'], - File['/etc/openstackid/server.php'], - Package[$php5_packages] , - Class['::nodejs'], - ], + require => $update_site_requires, } # system configuration tweaking diff --git a/templates/app.php.erb b/templates/lv4/app.php.erb similarity index 100% rename from templates/app.php.erb rename to templates/lv4/app.php.erb diff --git a/templates/database.php.erb b/templates/lv4/database.php.erb similarity index 98% rename from templates/database.php.erb rename to templates/lv4/database.php.erb index 4ab097c..2007759 100644 --- a/templates/database.php.erb +++ b/templates/lv4/database.php.erb @@ -87,7 +87,7 @@ return array( 'default' => array( 'host' => '<%= @redis_host %>', 'port' => <%= @redis_port %>, - 'database' => 0, + 'database' => <%= @redis_db %>, 'password' => '<%= @redis_password %>' ), ), diff --git a/templates/environment.php.erb b/templates/lv4/environment.php.erb similarity index 100% rename from templates/environment.php.erb rename to templates/lv4/environment.php.erb diff --git a/templates/log.php.erb b/templates/lv4/log.php.erb similarity index 100% rename from templates/log.php.erb rename to templates/lv4/log.php.erb diff --git a/templates/mail.php.erb b/templates/lv4/mail.php.erb similarity index 100% rename from templates/mail.php.erb rename to templates/lv4/mail.php.erb diff --git a/templates/recaptcha.php.erb b/templates/lv4/recaptcha.php.erb similarity index 100% rename from templates/recaptcha.php.erb rename to templates/lv4/recaptcha.php.erb diff --git a/templates/server.php.erb b/templates/lv4/server.php.erb similarity index 100% rename from templates/server.php.erb rename to templates/lv4/server.php.erb diff --git a/templates/lv5/.env.erb b/templates/lv5/.env.erb new file mode 100644 index 0000000..9b17b9b --- /dev/null +++ b/templates/lv5/.env.erb @@ -0,0 +1,60 @@ +APP_ENV="<%= @id_environment %>" +APP_DEBUG=<%= @app_debug %> +APP_KEY="<%= @app_key %>" +APP_URL="<%= @app_url %>" +APP_LOG=daily +APP_TIMEZONE="<%= @app_timezone %>" +APP_LOCALE="<%= @app_locale %>" +APP_VERSION="<%= @app_version %>" + +DB_HOST="<%= @id_mysql_host %>" +DB_DATABASE="<%= @id_db_name %>" +DB_USERNAME="<%= @id_mysql_user %>" +DB_PASSWORD="<%= @id_mysql_password %>" + +SS_DB_DRIVER=mysql +SS_DB_HOST="<%= @ss_mysql_host %>" +SS_DATABASE="<%= @ss_db_name %>" +SS_DB_USERNAME="<%= @ss_mysql_user %>" +SS_DB_PASSWORD="<%= @ss_mysql_password %>" + +REDIS_HOST="<%= @redis_host %>" +REDIS_PORT=<%= @redis_port %> +REDIS_DB=<%= @redis_db %> +REDIS_PASSWORD="<%= @redis_password %>" + +CACHE_DRIVER="<%= @cache_driver %>" + +SESSION_DRIVER="<%= @session_driver %>" +SESSION_COOKIE_SECURE=<%= @session_cookie_secure %> + +MAIL_DRIVER=<%= @email_driver %> +MAIL_HOST=<%= @email_smtp_server %> +MAIL_PORT=<%= @email_smtp_server_port %> +MAIL_USERNAME="<%= @email_smtp_server_user %>" +MAIL_PASSWORD="<%= @email_smtp_server_password %>" + +CORS_ALLOWED_HEADERS="origin, content-type, accept, authorization, x-requested-with" +CORS_ALLOWED_METHODS="GET, POST, OPTIONS, PUT, DELETE" +CORS_USE_PRE_FLIGHT_CACHING=false +CORS_MAX_AGE=3200 +CORS_EXPOSED_HEADERS= + +CURL_TIMEOUT=<%= @curl_timeout %> +CURL_ALLOWS_REDIRECT=<%= @curl_allow_redirect %> +CURL_VERIFY_SSL_CERT=<%= @curl_verify_ssl_cert %> + +ASSETS_BASE_URL="<%= @assets_base_url %>" +SSL_ENABLED=<%= @ssl_enable %> +DB_LOG_ENABLED=<%= @db_log_enabled %> + +BANNING_ENABLE=<%= @banning_enabled %> + +LOG_EMAIL_TO="<%= @id_log_error_to_email %>" +LOG_EMAIL_FROM="<%= @id_log_error_from_email %>" +LOG_LEVEL="<%= @app_log_level %>" +LOG_EMAIL_LEVEL="<%= @app_log_email_level %>" + +RECAPTCHA_PUBLIC_KEY="<%= @id_recaptcha_public_key %>" +RECAPTCHA_PRIVATE_KEY="<%= @id_recaptcha_private_key %>" +RECAPTCHA_TEMPLATE="<%= @id_recaptcha_template %>" diff --git a/templates/openstackid.conf.erb b/templates/openstackid.conf.erb index fa877f0..8a42766 100644 --- a/templates/openstackid.conf.erb +++ b/templates/openstackid.conf.erb @@ -3,4 +3,5 @@ SOURCE_TARBALL=http://tarballs.openstack.org/openstackid/openstackid-<%= @openst LARAVEL_ENV=<%= @id_environment %> RELEASE_NAME=openstackid-<%= @openstackid_release %>.tar.gz SOURCE_ROOT=http://tarballs.openstack.org/openstackid/ -USE_DB_SEEDING=<%= @use_db_seeding?1:0 %> \ No newline at end of file +USE_DB_SEEDING=<%= @use_db_seeding?1:0 %> +LARAVEL_VERSION=<%= @laravel_version %> \ No newline at end of file