Instellen van Ansible Control Node
gsd-ansible
.Categories:
4 minuten leestijd , 15 minuten implementatie provision
Projecten: c2platform/rws/ansible-gis
,
c2platform.core
In deze tutorial worden stap-voor-stap instructies gegeven voor het opzetten van een Ansible Control Node
op Red Hat 8,
specifiek op de gsd-ansible
node. Hoewel het voornamelijk is bedoeld voor Ansible
Ad-Hoc taken, kan deze control node ook dienen als een grafische gebruikersinterface
(GUI) voor lichtgewicht ontwikkelingswerk, toegankelijk via RDP (Remote Desktop
Protocol). Door deze richtlijnen te volgen, kun je een veelzijdige control node
omgeving creëren die zowel snelle automatiseringstaken als handige ontwikkelingsmogelijkheden ondersteunt.
Overzicht
Deze handleiding richt zich op het opzetten van een Ansible Control Node / lichtgewicht ontwikkelomgeving. Deze installatie omvat Vagrant en Ansible voor de uitvoering van de volgende taken:
- Vagrant gebruikt de VirtualBox Provider om een Red Hat 8 VM te creëren, inclusief het registreren van de node bij Red Hat met behulp van een Developer licentie-abonnement. Zie Het stroomlijnen van RHEL registratie en abonnement automatisering voor meer informatie.
- Vagrant gebruikt de Ansible-beheerder om een playbook uit te voeren dat essentiële pakketten zoals pip, setuptools, psycopg2-binary, curl, git en tree installeert of upgradet. Daarnaast wordt Xrdp geconfigureerd om bij het opstarten te starten en wordt er een Red Hat Desktopomgeving ingesteld.
Node | OS | Provider | Doel |
---|---|---|---|
gsd-ansible | Red Hat 8 | VirtualBox | Ansible Controle Node en lichtgewicht ontwikkelomgeving |
Het onderstaande diagram illustreert het standaard implementatieproces in de ontwikkelomgeving met behulp van Vagrant en Ansible. De volgende VMs worden gemaakt: gsd-ansible
, gsd-agserver1
en gsd-rproxy1
.
De Ansible Control Node, gsd-ansible
, kan afzonderlijk worden gebruikt om de nodes te voorzien en te beheren met Ansible zonder afhankelijk te zijn van Vagrant.
Deze diagrammen tonen de twee provisioning benaderingen: één met behulp van Vagrant en Ansible samen, en de andere met Ansible onafhankelijk met de Ansible Control Node.
Vereisten
- Red Hat vereist natuurlijk een abonnement. In de RWS ontwikkelomgeving kunnen we een ontwikkelaarslicentie gebruiken.
- RWS Ontwikkelomgeving.
Installatie
Om de node in te stellen, voer je het volgende commando uit:
vagrant up gsd-ansible
Verifiëren
Om te verifiëren dat de node correct is aangemaakt/geïmplementeerd, wordt in deze sectie beschreven hoe je verbinding maakt met de node, een Ansible-omgeving creëert, Ansible installeert en vervolgens node gsd-rproxy1
voorziet met behulp van deze omgeving. Deze stappen bootsen de stappen na die elke engineer bij RWS moet volgen om hun eigen gepersonaliseerde Ansible-werkruimte in te richten.
RDP Verbinding
Je kunt nu een RDP-verbinding maken met deze node met behulp van bijvoorbeeld Remmina
.
Je zou moeten kunnen verbinden met gebruiker vagrant
met wachtwoord vagrant
.
Opmerking:
De twee onderstaande secties gaan ervan uit dat je binnen degsd-ansible
VM bent via een RDP
verbinding of SSH.Ansible-omgeving
Installeer pyenv :
curl https://pyenv.run | bash
Voeg de volgende regels toe aan ~/.bashrc
:
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
Installeer Python 3.10.6
source ~/.bashrc
pyenv install 3.10.6
pyenv global 3.10.6
Maak Python virtuele omgeving aan met penv virtualenv
:
pyenv virtualenv rws
pyenv virtualenvs # dit zal alle beschikbare virtuele omgevingen inclusief "rws" tonen
pyenv virtualenv-init rws
pyenv activate rws
Voeg in ~/.bashrc
toe
eval "$(pyenv virtualenv-init -)"
pyenv activate rws
Installeer Ansible
Installeer Ansible, inclusief PIP-pakketten voor Kerberos en WinRM.
pip3 install -r requirements.txt # ansible maakt dit bestand aan in de home directory van vagrant
Als alternatief kun je de volgende opdrachten uitvoeren:
pip3 install --upgrade pip
pip3 install ansible-core==2.11.12
pip3 install setuptools_rust
pip3 install yamllint==1.28.0 ansible-lint==6.8.6 pre-commit==2.20.0
pip3 install pywinrm==0.4.3
pip3 install requests-kerberos
pip3 install pywinrm[kerberos] requests-kerberos pykerberos
Monteer Dev Collecties
Zodra je je Ansible-omgeving hebt ingesteld, kun je verdergaan met verschillende
taken zoals het klonen van het c2platform/rws/ansible-gis
project, het downloaden van Ansible
collecties, en het voorzien van nodes met Ansible.
Om ervoor te zorgen dat je omgeving functioneel is, is de makkelijkste manier echter om
gebruik te maken van de /vagrant
mount. Deze mount bevat het
c2platform/rws/ansible-gis
project van je host. Het enige
missende onderdeel is de ansible-dev-collections
map.
Om deze map te incorporeren in gsd-ansible
, kun je een speciaal lokaal en verborgen bestandsbestand genaamd .sync_folders.yml
maken met de volgende inhoud. Dit bestand staat in de git ignore lijst:
---
- src: ../ansible-dev-collections/
target: /ansible-dev-collections
Provisioneren met Ansible
Zodra je opnieuw opstart, zou je de gsd
omgeving moeten kunnen provisioneren zoals volgt:
vagrant reload gsd-ansible # maakt /ansible-dev-collections mount aan
vagrant ssh gsd-ansible
cd /vagrant
ansible-playbook plays/mw/reverse-proxy.yml -i hosts.ini
Houd er rekening mee dat de bovenstaande provision ervan uitgaat dat je de gsd-agserver1
al hebt draaien.
Met de Ansible Control Node, gsd-ansible
, kun je nu de nodes beheren met
uitsluitend Ansible. Vagrant is niet langer betrokken bij het proces.
Zie Vagrant Sync mappen voor meer informatie over het .sync_folders.yml
bestand.
Evaluatie
Het provisioning proces voor deze node wordt bepaald door het bestand in de map
group_vars/ansible
bestand, dat gebruik maakt van de bootstrap_packages
lijst, evenals de plays/mgmt/ansible.yml
play. Je kunt de bestanden vinden in het
Ansible project c2platform/rws/ansible-gis
.
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.