This commit is contained in:
2026-05-27 00:32:00 +02:00
parent 23280c22ce
commit 6321501c08
+160 -16
View File
@@ -175,23 +175,23 @@
enabled: yes enabled: yes
state: started state: started
# Optional UFW configuration # # Optional UFW configuration
- name: Ensure UFW is installed # - name: Ensure UFW is installed
apt: # apt:
name: ufw # name: ufw
state: present # state: present
when: inventory_hostname == 'ubuntu24-vm01.home.lan' # when: inventory_hostname == 'ubuntu24-vm01.home.lan'
- name: Allow Kubernetes ports # - name: Allow Kubernetes ports
ufw: # ufw:
rule: allow # rule: allow
port: "{{ item }}" # port: "{{ item }}"
proto: tcp # proto: tcp
loop: # loop:
- 6443 # - 6443
- 2379:2380 # - 2379:2380
- 10250 # - 10250
when: inventory_hostname == 'ubuntu24-vm01.home.lan' # when: inventory_hostname == 'ubuntu24-vm01.home.lan'
- name: Configure containerd for kubeadm - name: Configure containerd for kubeadm
copy: copy:
@@ -268,3 +268,147 @@
args: args:
creates: /etc/kubernetes/kubelet.conf creates: /etc/kubernetes/kubelet.conf
when: not inventory_hostname.endswith('-vm01.home.lan') when: not inventory_hostname.endswith('-vm01.home.lan')
- name: get repository
git:
repo: 'https://github.com/ahmetb/kubectx'
dest: /opt/kubectx
when: inventory_hostname.endswith('-vm01.home.lan')
- name: Create symbolic links for kubectx and kubens
file:
src: /opt/kubectx/{{ item }}
dest: /usr/local/bin/{{ item }}
state: link
loop:
- kubectx
- kubens
when: inventory_hostname.endswith('-vm01.home.lan')
- name: Install Additional packages
apt:
name:
- nfs-utils
- tmux
- telnet
state: present
- name: Ensure aliases exist in user's .bashrc
lineinfile:
path: "/home/{{ user_name }}/.bashrc"
line: "alias {{ item.key }}='{{ item.value }}'"
state: present
create: yes
loop: "{{ aliases | dict2items }}"
when: inventory_hostname.endswith('-vm01.home.lan')
# ----------------------------
# 1. Install Helm v3
# ----------------------------
- name: Download Helm
get_url:
url: "{{ helm_url }}"
dest: "/tmp/{{ helm_tar }}"
mode: '0644'
when: inventory_hostname.endswith('-vm01.home.lan')
- name: Create Helm config directory
file:
path: /home/jd/.config/helm
state: directory
mode: '0755'
when: inventory_hostname.endswith('-vm01.home.lan')
- name: Extract Helm archive
unarchive:
src: "/tmp/{{ helm_tar }}"
dest: /tmp
remote_src: true
when: inventory_hostname.endswith('-vm01.home.lan')
- name: Install Helm binary
copy:
src: /tmp/linux-amd64/helm
dest: "{{ helm_bin }}"
mode: '0755'
remote_src: true
when: inventory_hostname.endswith('-vm01.home.lan')
- name: Verify Helm installation
command: helm version
environment: "{{ helm_env }}"
when: inventory_hostname.endswith('-vm01.home.lan')
- name: Ensure correct ownership of Helm config
file:
path: /home/jd/.kube
state: directory
owner: jd
group: jd
mode: '0700'
when: inventory_hostname.endswith('-vm01.home.lan')
- name: Ensure correct ownership of Helm config
file:
path: /home/jd/.config/helm
state: directory
owner: jd
group: jd
mode: '0700'
when: inventory_hostname.endswith('-vm01.home.lan')
# ----------------------------
# 3. Add NFS Helm repo
# ----------------------------
- name: Add NFS Subdir External Provisioner repo
kubernetes.core.helm_repository:
name: nfs-subdir-external-provisioner
repo_url: https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
environment: "{{ helm_env }}"
become_user: "{{ ansible_user }}"
when: inventory_hostname.endswith('-vm01.home.lan')
- name: Update Helm repos
command: helm repo update
environment: "{{ helm_env }}"
become_user: "{{ ansible_user }}"
when: inventory_hostname.endswith('-vm01.home.lan')
# ----------------------------
# 4. Install NFS provisioner
# ----------------------------
- name: Install NFS Subdir External Provisioner
kubernetes.core.helm:
name: nfs-storage
chart_ref: nfs-subdir-external-provisioner/nfs-subdir-external-provisioner
release_namespace: kube-system
create_namespace: true
values:
nfs:
server: "{{ nfs_server }}"
path: "{{ nfs_path }}"
storageClass:
name: nfs-client
defaultClass: true
kubeconfig: "{{ kubeconfig }}"
environment: "{{ helm_env }}"
become_user: "{{ ansible_user }}"
when: inventory_hostname.endswith('-vm01.home.lan')
- name: Ensure correct ownership of Helm config
file:
path: /home/jd/.config
state: directory
owner: jd
group: jd
when: inventory_hostname.endswith('-vm01.home.lan')
- name: Ensure correct ownership of Helm config
file:
path: /home/jd/.kube/config
state: file
owner: jd
group: jd
mode: '0600'
when: inventory_hostname.endswith('-vm01.home.lan')