diff options
author | 2017-08-04 07:09:26 -0700 | |
---|---|---|
committer | 2017-08-04 07:15:11 -0700 | |
commit | e5f3fc7132e6a4d30afe3f22fcbfb382a097846c (patch) | |
tree | 248b0e2792fb0f5bc6dff1a8584358ce737db6de | |
parent | 59ac6c3b305ab12c042d9c258775abe46ee76dd5 (diff) |
Add packer environment with redis installed
Change-Id: I964f7a3811df7d5aff61c93fcdaef6307b50373f
Issue-id: CIMAN-14
Signed-off-by: Gary Wu <gary.i.wu@huawei.com>
-rw-r--r-- | packer/provision/redis.sh | 57 | ||||
-rw-r--r-- | packer/templates/redis.json | 54 |
2 files changed, 111 insertions, 0 deletions
diff --git a/packer/provision/redis.sh b/packer/provision/redis.sh new file mode 100644 index 000000000..11e2177a1 --- /dev/null +++ b/packer/provision/redis.sh @@ -0,0 +1,57 @@ +#!/bin/bash +# This particular environment was created specifically for vfc-nfvo-lcm + +# 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() { + # redis + yum install redis + systemctl enable redis.service +} + +ubuntu_systems() { + # redis + + # 1. download and install redis + cd /tmp + wget http://download.redis.io/releases/redis-4.0.1.tar.gz + tar -zxf redis-4.0.1.tar.gz + cd /tmp/redis-4.0.1 + make + make install + + # 2. set conf file and init script + mv /tmp/redis-4.0.1/redis-server /etc/init.d/redis-server + chmod +x /etc/init.d/redis-server + mv /tmp/redis-4.0.1/redis.conf /etc/redis.conf + + # 3. set auto start when start system + update-rc.d redis-server defaults +} + +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/redis.json b/packer/templates/redis.json new file mode 100644 index 000000000..7dee6fa3e --- /dev/null +++ b/packer/templates/redis.json @@ -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`}} - redis - {{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/redis.sh", + "provision/system_reseal.sh" + ], + "execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi" + } + ] +} |