This repository has been archived by the owner on Jul 30, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathprovision.sh
121 lines (107 loc) · 2.65 KB
/
provision.sh
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/bin/bash
echo
echo "## PROVISION SCRIPT ##"
echo
# add nodejs dependency
echo
echo "## Adding NodeJS 7.x Repo to apt-get"
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
# add mongodb dependency
echo
echo "## Adding MongoDB Repo to apt-get"
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
# add chrome dependency
echo
echo "## Adding Chrome Repo to apt-get"
echo "deb http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
# install with apt-get
echo
echo "## Updating dependency tree"
sudo apt-get -qq update
echo
echo "## Holding packages"
sudo apt-mark hold grub-pc grub-pc-bin grub2-common grub-common
echo
echo "## Upgrading programms"
sudo apt-get -y -qq upgrade
echo
echo "## Installing with APT-GET"
sudo apt-get -y -qq install \
git \
mongodb-org \
nodejs \
google-chrome-stable \
build-essential \
xvfb \
virtualbox-guest-dkms
# XVFB: So we can run headless browser tests
# VB-guest-addtitions: I run the vbguest-additions-plugin for vagrant, so this call is not needed for me
# let mongodb start as a service
echo
echo "## Adding MongoDB as a Service, to start on vm-startup"
cat <<EOT | sudo tee /etc/systemd/system/mongodb.service > /dev/null
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --bind_ip 0.0.0.0 --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
EOT
sudo systemctl enable mongodb
sudo systemctl is-enabled mongodb
sudo systemctl start mongodb
# install global with npm
echo
echo "## Installing with NPM (GLOBAL)"
sudo npm install -g \
@angular/cli \
bower \
yo \
nodemon \
gulp \
node-gyp
# Set entry dir
cat <<EOT >> /home/vagrant/.bashrc
cd /vagrant
echo
echo "Hi there, have fun :)"
EOT
# Cleanup part
echo
echo "## Cleaning up system"
/vagrant/cleanup.sh
# Finished
echo
echo "## INFOS"
echo VERSION CONTROL:
echo -n GIT:
git --version
echo -n Chrome:
google-chrome-stable --version
echo -n BuildEssentials
apt-cache policy build-essential
echo -n NODE JS:
node -v
echo -n NPM:
npm -v
echo -n Angular-CLI:
ng --version
echo -n Bower:
bower --version
echo -n Yo:
yo --version
echo -n Nodemon:
nodemon --version
echo -n gulp:
gulp --version
echo -n node-gyp:
node-gyp --version
echo MONGODB:
mongod --version
sudo systemctl status mongodb
echo
echo "## FINISHED PROVISIONING"