From 0c53decab0096b88d51b6a3dfd2d74f52b438efc Mon Sep 17 00:00:00 2001
From: "Hahn Axel (hahn)" <axel.hahn@iml.unibe.ch>
Date: Fri, 10 Mar 2017 14:57:41 +0100
Subject: [PATCH] add config as template

---
 hooks/templates/inc_projects_config.php.erb | 132 ++++++++++++++++++++
 1 file changed, 132 insertions(+)
 create mode 100644 hooks/templates/inc_projects_config.php.erb

diff --git a/hooks/templates/inc_projects_config.php.erb b/hooks/templates/inc_projects_config.php.erb
new file mode 100644
index 00000000..d62e5ebd
--- /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',
+        ));
-- 
GitLab