Add memcached to Jenkins build environment 89/8789/2
authorGary Wu <gary.i.wu@huawei.com>
Fri, 25 Aug 2017 13:46:17 +0000 (06:46 -0700)
committerGary Wu <gary.i.wu@huawei.com>
Fri, 25 Aug 2017 13:50:32 +0000 (06:50 -0700)
Change-Id: Ieb29292035d599c2114f32e0d50bdb4bb463fd29
Issue-id: INT-114
Signed-off-by: Gary Wu <gary.i.wu@huawei.com>
packer/provision/memcached.sh [new file with mode: 0644]
packer/templates/memcached.json [new file with mode: 0644]

diff --git a/packer/provision/memcached.sh b/packer/provision/memcached.sh
new file mode 100644 (file)
index 0000000..4f29237
--- /dev/null
@@ -0,0 +1,42 @@
+#!/bin/bash
+# This particular environment was created specifically for MultiCloud
+
+# vim: ts=4 sw=4 sts=4 et tw=72 :
+
+# force any errors to cause the script and job to end in failure
+set -xeu -o pipefail
+
+rh_systems() {
+    # memcached
+    yum install -y memcached
+    systemctl enable memcached
+}
+
+ubuntu_systems() {
+    # memcached
+    apt-get install memcached
+}
+
+all_systems() {
+    echo 'No common distribution configuration to perform'
+}
+
+echo "---> Detecting OS"
+ORIGIN=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
+
+case "${ORIGIN}" in
+    fedora|centos|redhat)
+        echo "---> RH type system detected"
+        rh_systems
+    ;;
+    ubuntu)
+        echo "---> Ubuntu system detected"
+        ubuntu_systems
+    ;;
+    *)
+        echo "---> Unknown operating system"
+    ;;
+esac
+
+# execute steps for all systems
+all_systems
diff --git a/packer/templates/memcached.json b/packer/templates/memcached.json
new file mode 100644 (file)
index 0000000..722785e
--- /dev/null
@@ -0,0 +1,54 @@
+{
+  "variables": {
+    "stack_tenant": null,
+    "stack_user": null,
+    "stack_pass": null,
+    "stack_network": null,
+    "base_image": null,
+    "cloud_user": null,
+    "distro": null,
+    "cloud_user_data": null
+  },
+  "builders": [
+    {
+      "type": "openstack",
+      "identity_endpoint": "https://auth.vexxhost.net/v2.0/",
+      "tenant_name": "{{user `stack_tenant`}}",
+      "username": "{{user `stack_user`}}",
+      "password": "{{user `stack_pass`}}",
+      "region": "ca-ymq-1",
+      "ssh_username": "{{user `cloud_user`}}",
+      "image_name": "{{user `distro`}} - memcached - {{isotime \"20060102-1504\"}}",
+      "source_image_name": "{{user `base_image`}}",
+      "flavor": "v1-standard-1",
+      "availability_zone": "ca-ymq-2",
+      "networks": [
+        "{{user `stack_network`}}"
+      ],
+      "user_data_file": "{{user `cloud_user_data`}}"
+    }
+  ],
+  "provisioners": [
+    {
+      "type": "shell",
+      "inline": [
+        "mkdir -p /tmp/packer"
+      ]
+    },
+    {
+      "type": "file",
+      "source": "provision/basebuild/",
+      "destination": "/tmp/packer"
+    },
+    {
+      "type": "shell",
+      "scripts": [
+        "provision/baseline.sh",
+        "provision/basebuild.sh",
+        "provision/memcached.sh",
+        "provision/system_reseal.sh"
+      ],
+      "execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi"
+    }
+  ]
+}