From 7cdf65c899f2840f16d9bc1040cd4d8d7f824dac Mon Sep 17 00:00:00 2001 From: adjoly Date: Mon, 18 Aug 2025 19:40:36 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=F0=9F=8F=97=EF=B8=8F=E3=80=8D=20wip:?= =?UTF-8?q?=20installing=20correctly=20kubectl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- p1/Vagrantfile | 28 +++------------ p1/install-all.sh | 18 ++++++++++ p1/playbooks.yml | 16 --------- p1/roles/common/defaults/main.yml | 15 -------- p1/roles/common/meta/main.yml | 2 -- p1/roles/common/tasks/main.yml | 60 ------------------------------- p1/roles/master/tasks/main.yml | 23 ------------ p1/roles/worker/tasks/main.yml | 7 ---- p1/setup-S.sh | 18 ++++++++++ p1/setup-SW.sh | 18 ++++++++++ 10 files changed, 59 insertions(+), 146 deletions(-) create mode 100644 p1/install-all.sh delete mode 100644 p1/playbooks.yml delete mode 100644 p1/roles/common/defaults/main.yml delete mode 100644 p1/roles/common/meta/main.yml delete mode 100644 p1/roles/common/tasks/main.yml delete mode 100644 p1/roles/master/tasks/main.yml delete mode 100644 p1/roles/worker/tasks/main.yml create mode 100644 p1/setup-S.sh create mode 100644 p1/setup-SW.sh diff --git a/p1/Vagrantfile b/p1/Vagrantfile index cf0eaae..73251df 100644 --- a/p1/Vagrantfile +++ b/p1/Vagrantfile @@ -34,34 +34,16 @@ Vagrant.configure("2") do |config| config.vm.define "#{IOT_LOGIN}S" do |server| server.vm.hostname = "#{IOT_LOGIN}S" server.vm.network "private_network", ip: "192.168.56.110", auto_config: true - - server.vm.provision "ansible" do |ansible| - ansible.playbook = "playbooks.yml" - ansible.groups = { - "masters" => ["#{IOT_LOGIN}S"], - "workers" => ["#{IOT_LOGIN}SW"] - } - ansible.extra_vars = { - node_ip: "192.168.56.110", - node_name: "master", - pod_network: "192.168.56.64/26" - } - end + + server.vm.provision "shell", path: "install-all.sh" + # server.vm.provision "shell", path: "setup-S.sh" end config.vm.define "#{IOT_LOGIN}SW" do |serverworker| serverworker.vm.hostname = "#{IOT_LOGIN}SW" serverworker.vm.network "private_network", ip: "192.168.56.111", auto_config: true - serverworker.vm.provision "ansible" do |ansible| - ansible.playbook = "playbook.yml" - ansible.groups = { - "masters" => ["#{IOT_LOGIN}S"], - "workers" => ["#{IOT_LOGIN}SW"] - } - ansible.extra_vars = { - node_ip: "192.168.56.111", - } - end + serverworker.vm.provision "shell", path: "install-all.sh" + # serverworker.vm.provision "shell", path: "setup-SW.sh" end end diff --git a/p1/install-all.sh b/p1/install-all.sh new file mode 100644 index 0000000..8c94bfe --- /dev/null +++ b/p1/install-all.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env sh + +# setup docker +sudo apt update +sudo apt install -y docker.io + +sudo systemctl start docker +sudo systemctl enable docker + +# install kubernetes +sudo apt-get install -y apt-transport-https ca-certificates curl gpg +curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg +echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list + +sudo apt-get update +sudo apt-get install -y kubelet kubectl +sudo apt-mark hold kubelet kubectl +sudo systemctl enable --now kubelet diff --git a/p1/playbooks.yml b/p1/playbooks.yml deleted file mode 100644 index 07d3d16..0000000 --- a/p1/playbooks.yml +++ /dev/null @@ -1,16 +0,0 @@ ---- - -- hosts: all - become: yes - roles: - - common - -- hosts: masters - become: yes - roles: - - master - -- hosts: workers - become: yes - roles: - - worker diff --git a/p1/roles/common/defaults/main.yml b/p1/roles/common/defaults/main.yml deleted file mode 100644 index ce70e53..0000000 --- a/p1/roles/common/defaults/main.yml +++ /dev/null @@ -1,15 +0,0 @@ -gpg_keys: -- key: https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key - -repositories: -- repo: "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /" - -https_packages: -- name: apt-transport-https -- name: curl -- name: gpg - -k8s_packages: -- name: kubeadm -- name: kubelet -- name: kubectl diff --git a/p1/roles/common/meta/main.yml b/p1/roles/common/meta/main.yml deleted file mode 100644 index 23d65c7..0000000 --- a/p1/roles/common/meta/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -dependencies: [] diff --git a/p1/roles/common/tasks/main.yml b/p1/roles/common/tasks/main.yml deleted file mode 100644 index a96afbe..0000000 --- a/p1/roles/common/tasks/main.yml +++ /dev/null @@ -1,60 +0,0 @@ ---- - -- name: Install packages that allow apt to be used over HTTPS - apt: - name='{{ item.name }}' - state=present - update_cache=yes - with_items: "{{ https_packages | default([]) }}" - - -- name: Ensure keyrings directory exists - file: - path: /etc/apt/keyrings - state: directory - mode: '0755' - -- name: Download and install Kubernetes apt GPG key (dearmored) - shell: | - curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | gpg --dearmor | tee /etc/apt/keyrings/kubernetes-apt-keyring.gpg > /dev/null - args: - creates: /etc/apt/keyrings/kubernetes-apt-keyring.gpg - -- name: Add Kubernetes apt repository - apt_repository: - repo: "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /" - filename: kubernetes - state: present - - -- name: Remove swapfile from /etc/fstab - mount: - name: "{{ item }}" - fstype: swap - state: absent - with_items: - - swap - - none - - -- name: Disable swap - command: swapoff -a - when: ansible_swaptotal_mb > 0 - - -- name: Install Kubernetes binaries - apt: - name="{{ item.name }}" - state=present - update_cache=yes - with_items: "{{ k8s_packages | default([]) }}" - -- name: Configure node ip - lineinfile: - path: '/etc/systemd/system/kubelet.service.d/10-kubeadm.conf' - line: 'Environment="KUBELET_EXTRA_ARGS=--node-ip={{ node_ip }}"' - regexp: 'KUBELET_EXTRA_ARGS=' - insertafter: '\[Service\]' - state: present - notify: - - restart kubelet diff --git a/p1/roles/master/tasks/main.yml b/p1/roles/master/tasks/main.yml deleted file mode 100644 index 072173d..0000000 --- a/p1/roles/master/tasks/main.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- - -- name: Initialize the Kubernetes cluster using kubeadm - command: kubeadm init --apiserver-advertise-address="{{ node_ip }}" --apiserver-cert-extra-sans="{{ node_ip }}" --node-name="{{ node_name }}" --pod-network-cidr={{ pod_network }} - -- name: Setup kubeconfig for vagrant user - command: "{{ item }}" - with_items: - - mkdir -p /home/vagrant/.kube - - cp -i /etc/kubernetes/admin.conf /home/vagrant/.kube/config - - chown vagrant:vagrant /home/vagrant/.kube/config - -- name: Install flannel pod network - become: false - command: kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml - -- name: Generate join command - command: kubeadm token create --print-join-command - register: join_command - -- name: Copy join command to local file - become: false - local_action: copy content="{{ join_command.stdout_lines[0] }}" dest="./join-command" diff --git a/p1/roles/worker/tasks/main.yml b/p1/roles/worker/tasks/main.yml deleted file mode 100644 index 7e4498f..0000000 --- a/p1/roles/worker/tasks/main.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- - -- name: Copy the join command to server location - copy: src=join-command dest=/tmp/join-command.sh mode=0777 - -- name: Join the node to cluster - command: sh /tmp/join-command.sh diff --git a/p1/setup-S.sh b/p1/setup-S.sh new file mode 100644 index 0000000..8c01c00 --- /dev/null +++ b/p1/setup-S.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env sh + +# setup docker +sudo apt update +sudo apt install -y docker.io + +sudo systemctl start docker +sudo systemctl enable docker + +# install kubernetes +sudo apt-get install -y apt-transport-https ca-certificates curl gpg +curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg +echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list + +sudo apt-get update +sudo apt-get install -y kubelet kubeadm kubectl +sudo apt-mark hold kubelet kubeadm kubectl +sudo systemctl enable --now kubelet diff --git a/p1/setup-SW.sh b/p1/setup-SW.sh new file mode 100644 index 0000000..8c01c00 --- /dev/null +++ b/p1/setup-SW.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env sh + +# setup docker +sudo apt update +sudo apt install -y docker.io + +sudo systemctl start docker +sudo systemctl enable docker + +# install kubernetes +sudo apt-get install -y apt-transport-https ca-certificates curl gpg +curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg +echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list + +sudo apt-get update +sudo apt-get install -y kubelet kubeadm kubectl +sudo apt-mark hold kubelet kubeadm kubectl +sudo systemctl enable --now kubelet