Installeer en beheer Argo CD met Ansible

Zet een Kubernetes-cluster op, installeer Argo CD en beheer beide met behulp van de Ansible-rollen van het C2 Platform voor Linux en Kubernetes.

Projecten: c2platform/ansible , c2platform.core , c2platform.mw


Deze handleiding illustreert de installatie van Argo CD binnen de ontwikkelomgeving van het C2 Platform met behulp van de Ansible-collecties van het C2 Platform. Dit geautomatiseerde proces maakt gebruik van Vagrant , de Vagrant Ansible provisioner en, vanzelfsprekend, Ansible.

Hier is een overzicht van het proces dat door Vagrant wordt georkestreerd met Ansible als een provisioner:

  1. Kubernetes Cluster Uitrol: Ansible configureert een Kubernetes-instantie met de Ansible MicroK8s-rol ( c2platform.mw.microk8s)
  2. Kubernetes Configuratie: Ansible configureert verder het Kubernetes-cluster met behulp van de Ansible Kubernetes-rol ( c2platform.mw.kubernetes).
  3. Argo CD Installatie: Argo CD wordt geïnstalleerd met dezelfde Kubernetes-rol.
  4. Argo Rollout Installatie en Demo-App Deployment: Argo Rollouts en de demo-applicatie worden uitgerold met dezelfde Kubernetes-rol.

Na het voltooien van deze stappen kunt u de Argo CD UI benaderen via: https://argocd.c2platform.org .

Randvoorwaarden

Zorg ervoor dat de ontwikkelomgeving van het C2 platform is opgezet en dat de reverse en forward proxy c2d-rproxy1 draait.

c2
unset PLAY  # zorg ervoor dat alle plays worden uitgevoerd
vagrant up c2d-rproxy1

Voor meer informatie, raadpleeg Een Ontwikkelomgeving Opzetten op Ubuntu 22 .

Uitrol

Voer het volgende commando uit om een Kubernetes-instantie te creëren en Argo CD uit te rollen. Het volledige proces duurt ongeveer 7 minuten.

vagrant up c2d-argocd

De console-uitvoer zou vergelijkbaar moeten zijn met provision.log .

Inloggen met Argo CD CLI

SSH naar de Vagrant LXD container c2d-argocd met het commando:

vagrant ssh c2d-argocd

Binnen c2d-argocd is de KUBECONFIG1 omgevingsvariabele al ingesteld, waarmee de Argo CD CLI en Kubernetes-tools zoals kubectl verbinding kunnen maken met het cluster.

Log in bij Argo CD met deze commando’s:

export ARGOCD_ADMIN_INITIAL_PW="$(argocd admin initial-password -n argocd | head -1)"
argocd login argocd.c2platform.org --username admin --password $ARGOCD_ADMIN_INITIAL_PW
Toon Commandouitvoer
root@c2d-argocd:~# argocd login argocd.c2platform.org --username admin --password $ARGOCD_ADMIN_INITIAL_PW
'admin:login' logged in successfully
Context 'argocd.c2platform.org' updated
root@c2d-argocd:~#

Update admin wachtwoord

Voor het gemak, wijzig naar een eenvoudiger wachtwoord, zoals supersecret, zorg ervoor dat het voldoet aan de wachtwoordvereisten. Voer het commando uit:

argocd account update-password --account admin --current-password $ARGOCD_ADMIN_INITIAL_PW --new-password supersecret

Inloggen op Argo CD UI

Start Firefox met het geconfigureerde Firefox-profiel (zie Configureer een Firefox-profiel ). Navigeer naar https://argocd.c2platform.org , log in als admin met het wachtwoord supersecret. U zou het volgende moeten zien:

Vagrant snapshot

Na de uitrol, maak een snapshot (v0) voor toekomstig gebruik:

vagrant snapshot save c2d-argocd v0

Om te herstellen, gebruik:

vagrant snapshot restore c2d-argocd v0

Voer vagrant --help uit voor meer informatie over Vagrant CLI-commandos.

Review

Om een beter begrip te krijgen van hoe dit resultaat is bereikt, laten we de C2 Platform Ansible Reference Inventory Project ( c2platform/c2/ansible-inventory) bekijken. Om dit begrip te verkrijgen, moeten we kijken naar de betrokken Ansible-play, die plays/mw/mk8s.yml is, en de Ansible-configuratie, die is opgeslagen in de map group_vars/argocd.

Ansible Play

De Ansible-play die betrokken is bij de c2d-argocd node is plays/mw/mk8s.yml. Daar kunnen we vaststellen dat drie Ansible-rollen betrokken zijn:

  1. Ansible Linux-rol ( c2platform.core.linux)
  2. Ansible Kubernetes-rol ( c2platform.mw.kubernetes)
  3. Ansible MicroK8s-rol ( c2platform.mw.microk8s)

Om een beter begrip te krijgen:

Group VarsAnsible VariablePurpose
group_vars/argocd/tools.ymllinux_resourcesMake Kubernetes CLI tools fzf, kubectx, kubens, kube-ps1, kube-prompt available.
group_vars/argocd/argocd.ymlkubernetes_resourcesCreate namespace argocd, TLS secrets, deploy Argo CD, patch argocd-server with LoadBalancerIP.
group_vars/argocd/argocd_cli.ymlkubernetes_linux_resourcesDownload and install Argo CD CLI and configure kubectl autocompletion

Installatie

De installatie van Argo Rollouts omvat twee stappen:

  1. Controller Installatie: Maak namespace argo-rollouts aan en pas vervolgens install.yaml  toe. Zie  group_vars/argocd/argo_rollouts.yml.
  2. Argo Rollouts Kubectl Plugin: Optionele download en installatie inclusief optionele bash completion.

Vervolgens wordt een Argo Rollouts demo geïnstalleerd, die bestaat uit het aanmaken van een Rollout en een Service resource.

Group VarsAnsible VariablePurpose
group_vars/argocd/argo_rollouts.ymlkubernetes_linux_resourcesDownload and install Argo Rollouts Kubectl plugin and configure autocompletion for kubectl-argo-rollouts

Volgende stappen

Met Argo CD geïnstalleerd, ga verder met het implementeren van de guestbook demo-applicatie, dit helpt je om een beter begrip te krijgen van hoe Argo CD werkt.

Aanvullende Informatie


  1. Het bestand /etc/profile.d/mk8s.sh bevat een regel met KUBECONFIG zoals hieronder weergegeven, waardoor er toegang is tot het Kubernetes-cluster binnen c2d-argocd:

    export KUBECONFIG=/var/snap/microk8s/current/credentials/client.config
    
     ↩︎