Installeer en beheer Argo CD met Ansible
Categories:
4 minuten leestijd , 7 minuten provision
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:
- Kubernetes Cluster Uitrol: Ansible configureert een Kubernetes-instantie
met de
Ansible MicroK8s-rol (
c2platform.mw.microk8s) - Kubernetes Configuratie: Ansible configureert verder het Kubernetes-cluster
met behulp van de
Ansible Kubernetes-rol (
c2platform.mw.kubernetes). - Argo CD Installatie: Argo CD wordt geïnstalleerd met dezelfde Kubernetes-rol.
- 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:
- Ansible Linux-rol (
c2platform.core.linux) - Ansible Kubernetes-rol (
c2platform.mw.kubernetes) - Ansible MicroK8s-rol (
c2platform.mw.microk8s)
Om een beter begrip te krijgen:
| Group Vars | Ansible Variable | Purpose |
|---|---|---|
group_vars/argocd/tools.yml | linux_resources | Make Kubernetes CLI tools fzf, kubectx, kubens, kube-ps1, kube-prompt available. |
group_vars/argocd/argocd.yml | kubernetes_resources | Create namespace argocd, TLS secrets, deploy Argo CD, patch argocd-server with LoadBalancerIP. |
group_vars/argocd/argocd_cli.yml | kubernetes_linux_resources | Download and install Argo CD CLI and configure kubectl autocompletion |
Installatie
De installatie van Argo Rollouts omvat twee stappen:
- Controller Installatie: Maak namespace
argo-rolloutsaan en pas vervolgensinstall.yamltoe. Ziegroup_vars/argocd/argo_rollouts.yml. - 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 Vars | Ansible Variable | Purpose |
|---|---|---|
group_vars/argocd/argo_rollouts.yml | kubernetes_linux_resources | Download 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
- Argo CD - Declarative GitOps CD voor Kubernetes
- Argo Rollouts - Kubernetes Progressieve Leveringscontroller
- Annotated Ingress resource - cert-manager Documentation
- Welcome - Ingress-Nginx Controller
Het bestand
/etc/profile.d/mk8s.shbevat een regel metKUBECONFIGzoals hieronder weergegeven, waardoor er toegang is tot het Kubernetes-cluster binnenc2d-argocd:↩︎export KUBECONFIG=/var/snap/microk8s/current/credentials/client.config
Feedback
Was deze pagina nuttig?
Fijn om te horen! Vertel ons alstublieft hoe we kunnen verbeteren.
Jammer om dat te horen. Vertel ons alstublieft hoe we kunnen verbeteren.