diff --git a/hooks/templates/inc_projects_config.php.erb b/hooks/templates/inc_projects_config.php.erb new file mode 100644 index 0000000000000000000000000000000000000000..d62e5ebd5eaae17cd67df8454191086355ec5c1e --- /dev/null +++ b/hooks/templates/inc_projects_config.php.erb @@ -0,0 +1,132 @@ +<?php + +// ---------------------------------------------------------------------- +// fetch status infos von den einzelnen Phasen +// ---------------------------------------------------------------------- + +$aConfig = array( + // Basispfad: + 'workDir' => '/var/imldeployment', + 'tmpDir' => '/var/tmp/imldeployment', + 'versionsToKeep' => 10, // for cleanup: keep n unused versions + 'builtsToKeep' => 3, // for cleanup: keep n failed builds + 'hooks' => array( + 'build-postclone' => 'hooks/onbuild-postclone', + 'build-precompress' => 'hooks/onbuild', // TODO: remove this + ), + 'lang' => 'de', // for available languages see ./config/lang/*.json + // rsync of archives + 'mirrorPackages' => array(), + // ssh install - if a host is given + 'installPackages' => array( + 'user' => 'imldeployment', + + // command to update ssh hostkey in known_hosts file + // %s is name of the server (2x) + 'addkeycommand' => '/usr/bin/ssh-keygen -R %s; /usr/bin/ssh-keyscan -t rsa %s >> /home/www-data/.ssh/known_hosts', + + // command to verify if puppet host is correct + 'testcommand' => 'sudo puppet --version', + + // puppet agent liefert 0 oder 2 zurueck, wenn OK + // http://docs.puppetlabs.com/references/3.4.0/man/apply.html + 'command' => 'sudo puppet agent -t --detailed-exitcodes ; rc=$?; if [ $rc -eq 2 ]; then rc=0; fi ; exit $rc', + ), + 'phases' => array( + "preview" => array( + 'css' => array( + 'bgdark' => 'background:#89a;', + 'bglight' => 'background:#e8e8f8; color:#333; background: rgba(180,180,230, 0.3);', + 'bgbutton' => 'background:#89a; color:#fcfcfc; border: 1px solid rgba(0,0,0,0.15);', + ), + ), + "stage" => array( + 'css' => array( + 'bgdark' => 'background:#8aa;', + 'bglight' => 'background:#e4f8f8; color:#333; background: rgba(180,210,210, 0.3);', + 'bgbutton' => 'background:#8aa; color:#fcfcfc; border: 1px solid rgba(0,0,0,0.15);', + ), + ), + "live" => array( + 'css' => array( + 'bgdark' => 'background:#8a8;', + 'bglight' => 'background:#e0f8e0; color:#333; background: rgba(180,250,180, 0.3);', + 'bgbutton' => 'background:#8a8; color:#fcfcfc; border: 1px solid rgba(0,0,0,0.15);', + ), + // wenn deploytimes existiert, dann wird nach dem Deploy das Paket + // in einer Queue zurueckgehalten + "deploytimes" => array('/(Mon|Tue|Wed|Thu)\ 14\:/'), + ), + ), + 'showdebug' => array( + 'ip'=>array(), + ), + + // generate template in hook/templates + 'auth' => array( + 'ldap' => array( + 'server' => '<%= @replace["ldap-url"] %>', + 'port' => 636, + 'DnLookupUser' => '<%= @replace["ldap-user"] %>', // ldap rdn oder dn + 'PwLookupUser' => '<%= @replace["ldap-pasword"] %>', // entsprechendes password + 'DnUserNode' => '<%= @replace["ldap-dn-user"] %>', + 'DnAppNode' => '<%= @replace["ldap-dn-apps"] %>', + 'debugLevel' => 0, + ) + ) +); + +// ---------------------------------------------------------------------- +// override for local development +// ---------------------------------------------------------------------- + + +switch (php_uname("n")) { + case "USER": + case "AAE49": + case "dev.ci.iml.unibe.ch": + $aConfig['workDir'] = "D:\imldeployment"; + break; + + case "ci.iml.unibe.ch": + + // synch der Pakete nur auf dem Livesystem + $aConfig['mirrorPackages'] = array( + 'puppet' => array( + 'type' => 'rsync', + 'runas' => 'www-data', // nur fuer commandline + 'target' => 'ladmin@calcium.iml.unibe.ch:/share/imldeployment', + ), + 'puppet.one' => array( + 'type' => 'rsync', + 'runas' => 'www-data', // nur fuer commandline + 'target' => 'copy-deployment@puppet.one.iml.unibe.ch:/var/shared/imldeployment', + ), + ); + break; + + default: + break; +} +if (!array_key_exists('tmpDir', $aConfig) || !$aConfig["tmpDir"]){ + $aConfig["tmpDir"] = (getenv("temp") ? getenv("temp") : "/var/tmp") . '/imldeployment'; +} + +// ---------------------------------------------------------------------- +// TODO: include custom settings that were saved in the GUI +// ---------------------------------------------------------------------- + + +// ---------------------------------------------------------------------- +// generate some vars +// ---------------------------------------------------------------------- + +$aConfig = array_merge($aConfig, array( + 'appRootDir' => dirname(dirname(__FILE__)), + 'configDir' => dirname(__FILE__), + 'dataDir' => $aConfig['workDir'] . '/data', // to write data: ssh keys, projects, database + 'buildDir' => $aConfig['workDir'] . '/build', + 'buildDefaultsDir' => $aConfig['workDir'] . '/defaults', + 'packageDir' => $aConfig['workDir'] . '/packages', + 'archiveDir' => $aConfig['workDir'] . '/packages/_files', + ));