Lab/Ansible

From Slaskete wiki
Revision as of 12:19, 13 June 2022 by Einarjh (talk | contribs)
Jump to navigation Jump to search

Ansible

Ansible benyttes for å administrere maskinene i laben. Når man jobber med ansible må man ha et sted hvor konfigurasjon er organisert og pushes ut til maskinene. For å gjøre ting enkelt blir dette gjort fra den samme maskinen som kjører Proxmox, med en egen bruker (einar).

Installasjon og oppsett

Som brukeren einar kjøres følgende kommando:

pip3 install ansible

Og argcomplete må installeres og aktiveres (det er nyttig for å få auto-complete på ansible-kommandoer):

sudo apt install python3-argcomplete
sudo mkdir /etc/bash_completion.d
sudo activate-global-python-argcomplete3

Dette oppretter nye kataloger som ikke eksisterte tidligere, så bash må få beskjed om at det er nye steder å finne programmer (oppdatere $PATH):

. .profile

Videre trengs det SSH-nøkler for login og management (trykker enter på alle valgene for å få standard-oppsett uten passord):

ssh-keygen
ssh-keygen -t ed25519

Det trengs også å sette noen innstillinger for git:

git config --global init.defaultBranch main
git config --global user.name "Einar Jørgen Haraldseid"
git config --global user.email einar.haraldseid@ntnu.no

Test av oppsett

Vi kan nå prøve å logge inn på VyOS-routeren vår (disse stegene er tatt rett ut av Ansible-håndboken)

ssh vyos@10.0.10.1
show config
exit

Og så prøve å se om ansible kan lese data fra vyos-routeren:

ansible all -i 10.0.10.1, -c ansible.netcommon.network_cli -u vyos -k -m vyos.vyos.vyos_facts -e ansible_network_os=vyos.vyos.vyos

Etter å ha oppgitt passordet skal dette ende opp med en JSON-dump av litt data, ca. sånn:

10.0.10.1 | SUCCESS => {
    "ansible_facts": {
        "ansible_net_api": "cliconf",
        "ansible_net_gather_network_resources": [],
        "ansible_net_gather_subset": [
            "neighbors",
            "default"
        ],
        "ansible_net_hostname": "vyos",
        "ansible_net_neighbors": {},
        "ansible_net_python_version": "3.9.2",
        "ansible_net_serialnum": null,
        "ansible_net_system": "vyos",
        "ansible_net_version": "VyOS 1.4-rolling-202206090217",
        "ansible_network_resources": {}
    },
    "changed": false
}

Opprette Ansible-katalog og konfigurere Ansible

Opprett katalog som skal inneholde Ansible-dokumentasjonen vår:

git init ansible
cd ansible