Merge "Jenkis job for apigateway and discovery dockers"
[ci-management.git] / packer / provision / basebuild.sh
1 #!/bin/bash
2
3 # vim: ts=4 sw=4 sts=4 et tw=72 :
4
5 # force any errors to cause the script and job to end in failure
6 set -xeu -o pipefail
7
8 rh_systems() {
9     # Install python dependencies
10     yum install -y python-{devel,virtualenv,setuptools,pip}
11
12     # Build dependencies for Python packages
13     yum install -y openssl-devel mysql-devel gcc
14
15     # Autorelease support packages
16     yum install -y python-tox xmlstarlet
17
18     # Additional libraries for Python ncclient
19     yum install -y libxml2 libxslt libxslt-devel libffi libffi-devel
20
21     # Packer builds happen from the centos flavor images
22     PACKERDIR=$(mktemp -d)
23     # disable double quote checking
24     # shellcheck disable=SC2086
25     cd $PACKERDIR
26     wget https://releases.hashicorp.com/packer/0.12.2/packer_0.12.2_linux_amd64.zip
27     unzip packer_0.12.2_linux_amd64.zip -d /usr/local/bin/
28     # rename packer to avoid conflicts with cracklib
29     mv /usr/local/bin/packer /usr/local/bin/packer.io
30
31     # cleanup from the installation
32     # disable double quote checking
33     # shellcheck disable=SC2086
34     rm -rf $PACKERDIR
35     # cleanup from previous install process
36     if [ -d /tmp/packer ]
37     then
38         rm -rf /tmp/packer
39     fi
40 }
41
42 ubuntu_systems() {
43     # Install python dependencies
44     apt-get install -y python-{dev,virtualenv,setuptools,pip}
45
46     # Build dependencies for Python packages
47     apt-get install -y libssl-dev libmysqlclient-dev gcc
48
49     # Autorelease support packages
50     apt-get install -y python-tox xmlstarlet
51
52     # Additional libraries for Python ncclient
53     apt-get install -y wget unzip python-ncclient
54
55     # Add graphviz for documentation building
56     apt-get install -y graphviz
57
58 }
59
60 all_systems() {
61     echo 'No common distribution configuration to perform'
62 }
63
64 echo "---> Detecting OS"
65 ORIGIN=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
66
67 case "${ORIGIN}" in
68     fedora|centos|redhat)
69         echo "---> RH type system detected"
70         rh_systems
71     ;;
72     ubuntu)
73         echo "---> Ubuntu system detected"
74         ubuntu_systems
75     ;;
76     *)
77         echo "---> Unknown operating system"
78     ;;
79 esac
80
81 # execute steps for all systems
82 all_systems