11#! /bin/bash
22set -Eeuo pipefail
33
4- if [ " $EUID " -ne 0 ]
5- then echo " Please run as root"
6- exit
7- fi
8-
94# This is a script to create single-node Kubernetes cluster and deploy Azure Arc Data Controller on it.
105#
116export AZUREARCDATACONTROLLER_DIR=aadatacontroller
@@ -65,24 +60,24 @@ echo "Starting installing packages..."
6560
6661# Install docker.
6762#
68- apt-get update -q
63+ sudo apt-get update -q
6964
70- apt --yes install \
65+ sudo apt --yes install \
7166 software-properties-common \
7267 apt-transport-https \
7368 ca-certificates \
7469 curl
7570
7671curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
7772
78- add-apt-repository \
73+ sudo add-apt-repository \
7974 " deb [arch=amd64] https://download.docker.com/linux/ubuntu $( lsb_release -cs) stable"
8075
81- apt update -q
82- apt-get install -q --yes docker-ce=18.06.2~ce~3-0~ubuntu --allow-downgrades
83- apt-mark hold docker-ce
76+ sudo apt update -q
77+ sudo apt-get install -q --yes docker-ce=18.06.2~ce~3-0~ubuntu --allow-downgrades
78+ sudo apt-mark hold docker-ce
8479
85- usermod --append --groups docker $USER
80+ sudo usermod --append --groups docker $USER
8681
8782# Prompt for private preview repository username and password provided by Microsoft
8883#
@@ -97,6 +92,10 @@ rm -f -r setupscript
9792mkdir -p setupscript
9893cd setupscript/
9994
95+ # Download and install azdata prerequisites
96+ #
97+ sudo apt install -y libodbc1 odbcinst odbcinst1debian2 unixodbc
98+
10099# Download and install azdata package
101100#
102101echo " "
108107azdata --version
109108echo " Azdata has been successfully installed."
110109
110+ # Install Azure CLI
111+ #
112+ curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
111113
112114# Load all pre-requisites for Kubernetes.
113115#
@@ -116,32 +118,32 @@ echo "Starting to setup pre-requisites for kubernetes..."
116118
117119# Setup the kubernetes preprequisites.
118120#
119- echo $( hostname -i) $( hostname) >> /etc/hosts
121+ echo $( hostname -i) $( hostname) >> sudo tee -a /etc/hosts
120122
121123swapoff -a
122- sed -i ' /swap/s/^\(.*\)$/#\1/g' /etc/fstab
124+ sudo sed -i ' /swap/s/^\(.*\)$/#\1/g' /etc/fstab
123125
124- curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
126+ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
125127
126- cat << EOF > /etc/apt/sources.list.d/kubernetes.list
128+ cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
127129
128130deb http://apt.kubernetes.io/ kubernetes-xenial main
129131
130132EOF
131133
132134# Install docker and packages to allow apt to use a repository over HTTPS.
133135#
134- apt-get update -q
136+ sudo apt-get update -q
135137
136- apt-get install -q -y ebtables ethtool
138+ sudo apt-get install -q -y ebtables ethtool
137139
138140# apt-get install -y docker.ce
139141
140- apt-get install -q -y apt-transport-https
142+ sudo apt-get install -q -y apt-transport-https
141143
142144# Setup daemon.
143145#
144- cat > /etc/docker/daemon.json << EOF
146+ sudo tee /etc/docker/daemon.json << EOF
145147{
146148 "exec-opts": ["native.cgroupdriver=systemd"],
147149 "log-driver": "json-file",
@@ -152,19 +154,19 @@ cat > /etc/docker/daemon.json <<EOF
152154}
153155EOF
154156
155- mkdir -p /etc/systemd/system/docker.service.d
157+ sudo mkdir -p /etc/systemd/system/docker.service.d
156158
157159# Restart docker.
158160#
159- systemctl daemon-reload
160- systemctl restart docker
161+ sudo systemctl daemon-reload
162+ sudo systemctl restart docker
161163
162- apt-get install -q -y kubelet=$KUBE_DPKG_VERSION kubeadm=$KUBE_DPKG_VERSION kubectl=$KUBE_DPKG_VERSION
164+ sudo apt-get install -q -y kubelet=$KUBE_DPKG_VERSION kubeadm=$KUBE_DPKG_VERSION kubectl=$KUBE_DPKG_VERSION
163165
164166# Holding the version of kube packages.
165167#
166- apt-mark hold kubelet kubeadm kubectl
167- curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash
168+ sudo apt-mark hold kubelet kubeadm kubectl
169+ curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | sudo bash
168170
169171. /etc/os-release
170172if [ " $UBUNTU_CODENAME " == " bionic" ]; then
@@ -177,22 +179,22 @@ sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
177179sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
178180sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1
179181
180- echo net.ipv6.conf.all.disable_ipv6=1 >> /etc/sysctl.conf
181- echo net.ipv6.conf.default.disable_ipv6=1 >> /etc/sysctl.conf
182- echo net.ipv6.conf.lo.disable_ipv6=1 >> /etc/sysctl.conf
182+ echo net.ipv6.conf.all.disable_ipv6=1 | sudo tee -a /etc/sysctl.conf
183+ echo net.ipv6.conf.default.disable_ipv6=1 | sudo tee -a /etc/sysctl.conf
184+ echo net.ipv6.conf.lo.disable_ipv6=1 | sudo tee -a /etc/sysctl.conf
183185
184186
185- sysctl net.bridge.bridge-nf-call-iptables=1
187+ sudo sysctl net.bridge.bridge-nf-call-iptables=1
186188
187189# Setting up the persistent volumes for the kubernetes.
188190#
189191for i in $( seq 1 $PV_COUNT ) ; do
190192
191193 vol=" vol$i "
192194
193- mkdir -p /mnt/local-storage/$vol
195+ sudo mkdir -p /mnt/local-storage/$vol
194196
195- mount --bind /mnt/local-storage/$vol /mnt/local-storage/$vol
197+ sudo mount --bind /mnt/local-storage/$vol /mnt/local-storage/$vol
196198
197199done
198200echo " Kubernetes pre-requisites have been completed."
@@ -208,10 +210,9 @@ echo "Starting to setup Kubernetes master..."
208210sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version=$KUBE_VERSION
209211
210212mkdir -p $HOME /.kube
211- mkdir -p /home/$SUDO_USER /.kube
212213
213214sudo cp -f /etc/kubernetes/admin.conf $HOME /.kube/config
214- sudo chown $( id -u $SUDO_USER ) :$( id -g $SUDO_USER ) $HOME /.kube/config
215+ sudo chown $( id -u $USER ) :$( id -g $USER ) $HOME /.kube/config
215216
216217# To enable a single node cluster remove the taint that limits the first node to master only service.
217218#
@@ -280,9 +281,5 @@ kubectl config set-context --current --namespace $CLUSTER_NAME
280281#
281282azdata login -n $CLUSTER_NAME
282283
283- if [ -d " $HOME /.azdata/" ]; then
284- sudo chown -R $( id -u $SUDO_USER ) :$( id -g $SUDO_USER ) $HOME /.azdata/
285- fi
286-
287284echo " Cluster successfully setup. Run 'azdata --help' to see all available options."
288285}| tee $LOG_FILE
0 commit comments