forked from jiocloudDSS/deploy-dss
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmake_userdata.sh
More file actions
executable file
·68 lines (63 loc) · 2.87 KB
/
make_userdata.sh
File metadata and controls
executable file
·68 lines (63 loc) · 2.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/bin/bash -xe
#Generates userdata.txt to be run on the machines
cat <<EOF >userdata.txt
#!/bin/bash
date
set -x
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export layout=full
export git_protocol=https
release="\$(lsb_release -cs)"
sudo mkdir -p /etc/facter/facts.d
export no_proxy="127.0.0.1,169.254.169.254,localhost,consul,jiocloud.com"
export http_proxy=${http_proxy}
export https_proxy=${http_proxy}
echo no_proxy="'127.0.0.1,localhost,consul'" >> /etc/environment
echo http_proxy="'${http_proxy}'" >> /etc/environment
echo https_proxy="'${https_proxy}'" >> /etc/environment
/bin/bash -c 'sudo echo "deb http://10.140.221.229/apt/JcsDSS/JcsDSS jiocloud main" | sudo tee -a /etc/apt/sources.list'
/bin/bash -c 'sudo echo "deb http://10.140.221.229/mirrors/mirrors/42/jiocloud.rustedhalo.com/ubuntu/ trusty main" | sudo tee -a /etc/apt/sources.list'
/bin/bash -c 'sudo echo "deb http://apt.puppetlabs.com trusty main" | sudo tee -a /etc/apt/sources.list'
/bin/bash -c 'sudo echo "deb-src http://apt.puppetlabs.com trusty main" | sudo tee -a /etc/apt/sources.list'
/bin/bash -c 'sudo echo "deb http://apt.puppetlabs.com trusty dependencies" | sudo tee -a /etc/apt/sources.list'
/bin/bash -c 'sudo echo "deb-src http://apt.puppetlabs.com trusty dependencies" | sudo tee -a /etc/apt/sources.list'
apt-get update
wget -O puppet.deb -t 5 -T 30 http://apt.puppetlabs.com/puppetlabs-release-trusty.deb
dpkg -i puppet.deb
apt-get update
n=0
while [ \$n -le 6 ]
do
apt-get install --force-yes -y puppet-dss hiera ruby puppet software-properties-common && break
n=\$((\$n+1))
sleep 5
done
apt-get install -y --force-yes python-jiocloud
time gem install faraday faraday_middleware --no-ri --no-rdoc;
time gem install librarian-puppet-simple --no-ri --no-rdoc;
echo 'consul_discovery_token='${consul_discovery_token} > /etc/facter/facts.d/consul.txt
# default to first 16 bytes of discovery token
echo 'consul_gossip_encrypt'=`echo ${consul_discovery_token} | cut -b 1-15 | base64` >> /etc/facter/facts.d/consul.txt
#echo 'current_version='${BUILD_NUMBER} > /etc/facter/facts.d/current_version.txt
echo 'env=dev-test'> /etc/facter/facts.d/env.txt
while true
do
# first install all packages to make the build as fast as possible
puppet apply --detailed-exitcodes /etc/puppet/manifests/site.pp --config_version='echo packages' --tags package
ret_code_package=\$?
apt-get install -f -y
# now perform base config
(echo 'File<| title == "/etc/consul" |> { purge => false }'; echo 'include rjil::jiocloud' ) | puppet apply --config_version='echo bootstrap' --detailed-exitcodes --debug /etc/puppet/manifests/site.pp
ret_code_jio=\$?
if [[ \$ret_code_jio = 1 || \$ret_code_jio = 4 || \$ret_code_jio = 6 || \$ret_code_package = 1 || \$ret_code_package = 4 || \$ret_code_package = 6 ]]
then
echo "Puppet failed. Will retry in 5 seconds"
sleep 5
else
break
fi
done
date
EOF