Set up ansible scripts to install k3s, helm, and ArgoCD in a Debian-based node

This commit is contained in:
2025-08-15 21:06:56 -03:00
parent 700b770248
commit f6866e1a11
8 changed files with 90 additions and 1 deletions
View File
+3
View File
@@ -1,3 +1,6 @@
/target /target
/.venv
.env .env
uv.lock
+1
View File
@@ -0,0 +1 @@
3.12
+2 -1
View File
@@ -1,3 +1,4 @@
{ {
"editor.formatOnSave": true "editor.formatOnSave": true,
"ansible.python.interpreterPath": "/home/nyeki/Documents/Repositories/payphone/payphone/.venv/bin/python"
} }
+2
View File
@@ -0,0 +1,2 @@
[dev]
dev-node ansible_host=p4.vps.nyeki.dev ansible_user=root
+42
View File
@@ -0,0 +1,42 @@
- name: Set up k3s on dev node
hosts: dev
become: true
tasks:
- name: Install curl
ansible.builtin.apt:
name: curl
state: present
when: ansible_os_family == "Debian"
- name: Download k3s install script
ansible.builtin.get_url:
url: https://get.k3s.io
dest: /tmp/k3s_install.sh
mode: '0755'
- name: Run k3s installer
ansible.builtin.command: /tmp/k3s_install.sh
args:
creates: /usr/local/bin/k3s
- name: Ensure k3s service is started and enabled
ansible.builtin.systemd:
name: k3s
enabled: true
state: started
- name: Install Python Kubernetes client
ansible.builtin.apt:
name: python3-kubernetes
state: present
- name: Download helm install script
ansible.builtin.get_url:
url: https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
dest: /tmp/get_helm.sh
mode: '0755'
- name: Run helm installer
ansible.builtin.command: /tmp/get_helm.sh
args:
creates: /usr/local/bin/helm
+30
View File
@@ -0,0 +1,30 @@
- name: Set up ArgoCD
hosts: dev
become: true
tasks:
- name: Create ArgoCD namespace
kubernetes.core.k8s:
api_version: v1
kind: Namespace
name: argocd
kubeconfig: /etc/rancher/k3s/k3s.yaml
- name: Apply ArgoCD installation manifest
kubernetes.core.k8s:
state: present
src: https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
namespace: argocd
kubeconfig: /etc/rancher/k3s/k3s.yaml
- name: Get ArgoCD initial admin password
ansible.builtin.shell: kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}"
register: encoded_pass
changed_when: false
- name: Decode ArgoCD password
ansible.builtin.set_fact:
argocd_pass: "{{ encoded_pass.stdout | b64decode }}"
- name: Show ArgoCD password
ansible.builtin.debug:
msg: "ArgoCD admin password: {{ argocd_pass }}"
+10
View File
@@ -0,0 +1,10 @@
[project]
name = "payphone"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"ansible>=11.9.0",
"ansible-lint>=25.8.1",
]