This commit is contained in:
2026-05-12 21:02:56 +02:00
parent 3355ff72df
commit 74c9390e89
+59 -48
View File
@@ -1,78 +1,89 @@
- name: Install kubernetes on Rocky 9
become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}"
block:
- name: Remove Helm v4 if present
ansible.builtin.file:
path: /usr/local/bin/helm
state: absent
become: true
- name: Download Helm v3 archive
ansible.builtin.get_url:
url: https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz
dest: /tmp/helm-v3.15.4-linux-amd64.tar.gz
vars:
helm_version: "v3.15.4"
helm_tar: "helm-{{ helm_version }}-linux-amd64.tar.gz"
helm_url: "https://get.helm.sh/{{ helm_tar }}"
helm_bin: /usr/local/bin/helm
kubeconfig: /home/jd/.kube/config
nfs_server: "192.168.77.106"
nfs_path: "/qda_1"
helm_env:
PATH: /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
HOME: /tmp/helm
XDG_CONFIG_HOME: /tmp/helm/.config
KUBECONFIG: "{{ kubeconfig }}"
block:
# ----------------------------
# 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: Extract Helm archive
ansible.builtin.unarchive:
src: /tmp/helm-v3.15.4-linux-amd64.tar.gz
unarchive:
src: "/tmp/{{ helm_tar }}"
dest: /tmp
remote_src: true
when: inventory_hostname.endswith('-vm01.home.lan')
- name: Create Helm working directory
file:
path: /tmp/helm
state: directory
- name: Install Helm binary
copy:
src: /tmp/linux-amd64/helm
dest: "{{ helm_bin }}"
mode: '0755'
- name: Prepare Helm directories
remote_src: true
- name: Verify Helm installation
command: helm version
environment: "{{ helm_env }}"
# ----------------------------
# 2. Prepare Helm config dir
# ----------------------------
- name: Create Helm config directory
file:
path: /tmp/helm/.config/helm
state: directory
mode: '0755'
- name: Install Helm v3 binary
ansible.builtin.copy:
src: /tmp/linux-amd64/helm
dest: /usr/local/bin/helm
mode: '0755'
remote_src: true
environment:
HOME: /tmp/helm
XDG_CONFIG_HOME: /tmp/helm
KUBECONFIG: /home/jd/.kube/config
become: true
when: inventory_hostname.endswith('-vm01.home.lan')
- name: Add NFS provisioner Helm repository
# ----------------------------
# 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:
PATH: /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
HOME: /tmp/helm
XDG_CONFIG_HOME: /tmp/helm/.config
KUBECONFIG: /home/jd/.kube/config
when: inventory_hostname.endswith('-vm01.home.lan')
environment: "{{ helm_env }}"
- name: Update Helm repos
command: helm repo update
environment: "{{ helm_env }}"
# ----------------------------
# 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
kubeconfig: /home/{{ ansible_user }}/.kube/config
values:
nfs:
server: "{{ nfs_server }}"
path: /qda_1
path: "{{ nfs_path }}"
storageClass:
name: nfs-client
defaultClass: true
environment:
HOME: /tmp/helm
PATH: /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
become: true
when: inventory_hostname.endswith('-vm01.home.lan')
kubeconfig: "{{ kubeconfig }}"
environment: "{{ helm_env }}"