Add Erlang and Rebar packages needed for DCAEGEN2
[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 firefox python-tox xmlstarlet xvfb
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 firefox python-tox xmlstarlet xvfb
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     # Erlang and Rebar packages needed for DCAEGEN2
59     apt-get install -y libwxgtk3.0-0v5 libsctp1
60     wget https://packages.erlang-solutions.com/erlang/esl-erlang/FLAVOUR_1_general/esl-erlang_19.3.6-1~ubuntu~trusty_amd64.deb
61     dpkg -i esl-erlang_19.3.6-1~ubuntu~trusty_amd64.deb
62     apt-get install -y libwxbase3.0-0v5
63     apt-get -f install -y
64     git clone https://github.com/erlang/rebar3.git
65     cd rebar3
66     ./bootstrap
67     mv rebar3 /usr/bin/rebar3
68     cd ..
69 }
70
71 all_systems() {
72     echo 'No common distribution configuration to perform'
73 }
74
75 echo "---> Detecting OS"
76 ORIGIN=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
77
78 case "${ORIGIN}" in
79     fedora|centos|redhat)
80         echo "---> RH type system detected"
81         rh_systems
82     ;;
83     ubuntu)
84         echo "---> Ubuntu system detected"
85         ubuntu_systems
86     ;;
87     *)
88         echo "---> Unknown operating system"
89     ;;
90 esac
91
92 # execute steps for all systems
93 all_systems