Guest User

Untitled

a guest
Oct 10th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.23 KB | None | 0 0
  1. # -*- mode: ruby -*-
  2. # vi: set ft=ruby :
  3.  
  4. # This script to install Kubernetes will get executed after we have provisioned the box
  5. $script1 = <<-SCRIPT
  6. # Install kubernetes
  7. yum update -y
  8. yum install wget -y
  9. setenforce 0
  10. sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
  11. service firewalld start
  12. chkconfig firewalld on
  13.  
  14. firewall-cmd --permanent --add-port=6443/tcp
  15. firewall-cmd --permanent --add-port=2379-2380/tcp
  16. firewall-cmd --permanent --add-port=10250/tcp
  17. firewall-cmd --permanent --add-port=10251/tcp
  18. firewall-cmd --permanent --add-port=10252/tcp
  19. firewall-cmd --permanent --add-port=10255/tcp
  20.  
  21. firewall-cmd --reload
  22. modprobe br_netfilter
  23. echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
  24.  
  25. cat <<EOF > /etc/yum.repos.d/kubernetes.repo
  26. [kubernetes]
  27. name=Kubernetes
  28. baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
  29. enabled=1
  30. gpgcheck=0
  31. repo_gpgcheck=1
  32. gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
  33. https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
  34. EOF
  35.  
  36. # kubelet requires swap off
  37. swapoff -a
  38. # keep swap off after reboot
  39. sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
  40.  
  41. yum install kubeadm docker --nogpgcheck -y
  42.  
  43. systemctl restart kubelet && systemctl enable kubelet
  44. systemctl restart docker && systemctl enable docker
  45.  
  46. sleep 30
  47.  
  48. # Get the IP address that VirtualBox has given this VM
  49. IPADDR=`ifconfig enp0s8 | grep mask | awk '{print $2}'| cut -f2 -d:`
  50. echo This VM has IP address $IPADDR
  51.  
  52. #adding IP and hostname in /etc/hosts file , if no DNS
  53. #sed -i '$ a $IPADDR kube-master' /etc/hosts
  54.  
  55. # Set up Kubernetes
  56. NODENAME=$(hostname -s)
  57. kubeadm init --apiserver-cert-extra-sans=$IPADDR --node-name $NODENAME --pod-network-cidr 172.28.0.0/12
  58.  
  59. mkdir -p $HOME/.kube
  60. cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  61. chown $(id -u):$(id -g) $HOME/.kube/config
  62.  
  63. #export kubever=$(kubectl version | base64 | tr -d '\n')&env.IPALLOC_RANGE=172.28.0.0/12
  64.  
  65. #kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever"
  66.  
  67.  
  68. SCRIPT
  69.  
  70.  
  71. $script2 = <<-SCRIPT
  72. # Install kubernetes
  73. yum update -y
  74. yum install wget -y
  75. setenforce 0
  76. sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
  77. service firewalld start
  78. chkconfig firewalld on
  79.  
  80. firewall-cmd --permanent --add-port=10250/tcp
  81. firewall-cmd --permanent --add-port=10255/tcp
  82. firewall-cmd --permanent --add-port=30000-32767/tcp
  83. firewall-cmd --permanent --add-port=6783/tcp
  84. firewall-cmd --reload
  85. modprobe br_netfilter
  86. echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
  87.  
  88. cat <<EOF > /etc/yum.repos.d/kubernetes.repo
  89. [kubernetes]
  90. name=Kubernetes
  91. baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
  92. enabled=1
  93. gpgcheck=0
  94. repo_gpgcheck=1
  95. gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
  96. https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
  97. EOF
  98.  
  99. # kubelet requires swap off
  100. swapoff -a
  101. # keep swap off after reboot
  102. sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
  103.  
  104. yum install kubeadm docker --nogpgcheck -y
  105.  
  106. systemctl restart docker && systemctl enable docker
  107.  
  108. # Get the IP address that VirtualBox has given this VM
  109. #IPADDR=`ifconfig enp0s8 | grep mask | awk '{print $2}'| cut -f2 -d:`
  110. #echo This VM has IP address $IPADDR
  111.  
  112. #adding IP and hostname in /etc/hosts file , if no DNS
  113. #sed -i '$ a $IPADDR kube-worker' /etc/hosts
  114.  
  115.  
  116. SCRIPT
  117.  
  118.  
  119. Vagrant.configure("2") do |config|
  120.  
  121. config.vm.define "master" do |master|
  122.  
  123. master.vm.provider "virtualbox" do |masterconfig|
  124. masterconfig.memory = "3024"
  125. masterconfig.cpus = 3
  126. end
  127.  
  128.  
  129. master.vm.box = "geerlingguy/centos7"
  130. master.vm.box_version = "1.2.10"
  131. master.vm.hostname = "kube-master"
  132. master.vm.network "private_network", ip: "172.28.128.3",
  133. virtualbox__intnet: true
  134. master.vm.provision "shell", inline: $script1
  135.  
  136. end
  137.  
  138.  
  139. config.vm.define "worker" do |worker|
  140.  
  141. worker.vm.provider "virtualbox" do |workerconfig|
  142. workerconfig.memory = "2024"
  143. workerconfig.cpus = 2
  144. end
  145.  
  146.  
  147. worker.vm.box = "geerlingguy/centos7"
  148. worker.vm.box_version = "1.2.10"
  149. worker.vm.hostname = "kube-worker"
  150. worker.vm.network "private_network", ip: "172.28.128.4",
  151. virtualbox__intnet: true
  152. worker.vm.provision "shell", inline: $script2
  153.  
  154. end
  155.  
  156.  
  157.  
  158. end
Add Comment
Please, Sign In to add comment