|
1 | 1 | #! /bin/bash -e |
2 | 2 |
|
3 | 3 | # install rancher server |
4 | | -echo "Install Rancher Server ..." |
| 4 | +echo "Install Rancher Server using helm chart on RKE2 ..." |
5 | 5 |
|
6 | | -sudo mkdir -p /opt/rancher |
| 6 | +source $HOME/mylab_rancher_version.sh |
7 | 7 |
|
8 | | -sudo docker run -d --restart=unless-stopped \ |
9 | | - -p 80:80 -p 443:443 \ |
10 | | - --privileged \ |
11 | | - -v /opt/rancher:/var/lib/rancher \ |
12 | | - rancher/rancher:v2.5.9 \ |
| 8 | +echo "Install RKE2 v1.21 ..." |
| 9 | +sudo bash -c 'curl -sfL https://get.rke2.io | INSTALL_RKE2_CHANNEL="v1.21" sh -' |
| 10 | +sudo mkdir -p /etc/rancher/rke2 |
| 11 | +sudo bash -c 'echo "write-kubeconfig-mode: \"0644\"" > /etc/rancher/rke2/config.yaml' |
| 12 | +sudo systemctl enable rke2-server.service |
| 13 | +sudo systemctl start rke2-server.service |
| 14 | + |
| 15 | +mkdir -p $HOME/.kube |
| 16 | +ln -s /etc/rancher/rke2/rke2.yaml $HOME/.kube/config |
| 17 | +export KUBECONFIG=$HOME/.kube/config |
| 18 | + |
| 19 | +# Wait until the RKE2 is ready |
| 20 | +echo "Initializing RKE2 cluster ..." |
| 21 | +while [ `kubectl get deploy -n kube-system | grep 1/1 | wc -l` -ne 3 ] |
| 22 | +do |
| 23 | + sleep 5 |
| 24 | + kubectl get po -n kube-system |
| 25 | +done |
| 26 | +echo "Your RKE2 cluster is ready!" |
| 27 | +kubectl get node |
| 28 | + |
| 29 | +echo "Install Cert Manager v1.5.1 ..." |
| 30 | +kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v1.5.1/cert-manager.crds.yaml |
| 31 | +helm repo add jetstack https://charts.jetstack.io |
| 32 | +helm install \ |
| 33 | + cert-manager jetstack/cert-manager \ |
| 34 | + --namespace cert-manager \ |
| 35 | + --version v1.5.1 \ |
| 36 | + --create-namespace |
| 37 | +kubectl -n cert-manager rollout status deploy/cert-manager |
| 38 | + |
| 39 | +# Wait until cert-manager deployment complete |
| 40 | +echo "Wait until cert-manager deployment finish ..." |
| 41 | +while [ `kubectl get deploy -n cert-manager | grep 1/1 | wc -l` -ne 3 ] |
| 42 | +do |
| 43 | + sleep 5 |
| 44 | + kubectl get po -n cert-manager |
| 45 | +done |
| 46 | + |
| 47 | +# Install Rancher with helm chart |
| 48 | +echo "Install Rancher ${RANCHER_VERSION} ..." |
| 49 | +RANCHER_IP=`curl -qs http://checkip.amazonaws.com` |
| 50 | +RANCHER_FQDN=rancher.$RANCHER_IP.sslip.io |
| 51 | +helm repo add rancher-latest https://releases.rancher.com/server-charts/latest |
| 52 | +helm install rancher rancher-latest/rancher \ |
| 53 | + --namespace cattle-system \ |
| 54 | + --set hostname=$RANCHER_FQDN \ |
| 55 | + --set replicas=1 \ |
| 56 | + --version ${RANCHER_VERSION} --devel \ |
| 57 | + --create-namespace |
| 58 | + |
| 59 | +echo "Wait until cattle-system deployment finish ..." |
| 60 | +while [ `kubectl get deploy -n cattle-system | grep 1/1 | wc -l` -ne 1 ] |
| 61 | +do |
| 62 | + sleep 5 |
| 63 | + kubectl get po -n cattle-system |
| 64 | +done |
| 65 | + |
| 66 | +RANCHER_BOOTSTRAP_PWD=`kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}{{ "\n" }}'` |
13 | 67 |
|
14 | | -export RANCHER_IP=`curl -qs http://checkip.amazonaws.com` |
15 | 68 |
|
16 | 69 | echo |
17 | 70 | echo "---------------------------------------------------------" |
18 | | -echo "Please wait for 5-10 mins to initializing Rancher server." |
| 71 | +echo "Your Rancher Server is ready." |
19 | 72 | echo |
20 | | -echo "Your Rancher Server URL: https://${RANCHER_IP}" > rancher-url.txt |
| 73 | +echo "Your Rancher Server URL: https://${RANCHER_FQDN}" > rancher-url.txt |
| 74 | +echo "Bootstrap Password: ${RANCHER_BOOTSTRAP_PWD}" >> rancher-url.txt |
21 | 75 | cat rancher-url.txt |
22 | | -echo |
23 | | - |
| 76 | +echo "---------------------------------------------------------" |
0 commit comments