-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathuser-script.sh
64 lines (48 loc) · 2.18 KB
/
user-script.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
#!/bin/bash
## Parsing arguments for username and password
while getopts u:p:b: flag
do
case "${flag}" in
u) username=${OPTARG};;
p) password=${OPTARG};;
b) bootstrapversion=${OPTARG};;
esac
done
##---------------- Software Requirements -----------------------##
apt update && apt install -y docker.io
snap install helm --classic # Install Helm
##---------------- SSH User -----------------------##
# Allow SSH password authentication
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
systemctl restart sshd
# Create user
useradd -m -s /bin/bash -p $(perl -e "print crypt('$password', "salt")") -G sudo $username
# Add user to docker group
usermod -a -G docker $username
##---------------- k3sup -----------------------##
curl -sLS https://get.k3sup.dev | sh
k3sup install --local --local-path=/root/kubeconfig --k3s-extra-args "--disable-cloud-controller --disable traefik --disable servicelb --docker -o /home/$username/.kube/config"
export KUBECONFIG=/root/kubeconfig
# Give user r/w permission to kubeconfig
chown $username: -R /home/$username/.kube
##---------------- kubectx, kubens and k9s -----------------------##
wget https://github.com/ahmetb/kubectx/releases/download/v0.9.4/kubens -O /usr/local/bin/kubens
wget https://github.com/ahmetb/kubectx/releases/download/v0.9.4/kubectx -O /usr/local/bin/kubectx
chmod +x /usr/local/bin/kube*
snap install k9s
mkdir /home/$username/.k9s
chown -R $username: /home/$username/.k9s
##---------------- env vars, bashrc and aliases -----------------------##
cat <<END >>/home/$username/.bashrc
export KUBECONFIG=/home/$username/.kube/config
alias k=kubectl
alias kns=kubens
alias ktx=kubectx
alias h=helm
END
##---------------- Jenkins -----------------------##
helm repo add jenkins https://charts.jenkins.io
# Make sure the k3s cluster is ready
until kubectl get nodes; do sleep 1; done
# Install Jenkins
helm upgrade --install jenkins jenkins/jenkins --version 3.10.2 -n jenkins --create-namespace -f https://raw.githubusercontent.com/andreazorzetto/aqua-training-userscript/$bootstrapversion/jenkins_3.10.2_values.yaml --set controller.adminUser=$username,controller.adminPassword=$password