Ansible ontwikkeldesktop instellen
Categories:
Projects:
c2platform/phx/ansible , Ansible Linux-rol ( c2platform.core.linux)
, Ansible Win-rol ( c2platform.wincore.win)
Overzicht
Met de PHX
ontwikkelomgeving leidt deze handleiding je door
het aanmaken van een node genaamd pxd-ubuntu-devtop. Deze node simuleert een
ontwikkeldesktop die gebruikt wordt in het PHX domein en datacenter. Hij is
gebaseerd op Ubuntu 24.04 met Ubuntu Desktop en XRDP geïnstalleerd voor toegang op afstand.
Visual Studio Code is ook vooraf geïnstalleerd. De setup voegt de node toe aan een Active
Directory (AD) domein, vergelijkbaar met desktops in het PHX domein.
Na het volgen van deze stappen is de node gereed voor domeingebruiker Tony om Ansible engineering taken uit te voeren.
Randvoorwaarden
- Instellen van de PHX Ontwikkelomgeving op Ubuntu 22
- De node
pxd-admoet draaien, omdatpxd-ubuntu-devtopzich aansluit bij het AD domeinC2.ORGdat beheerd wordt door deze node.
Uitrol
Om de ontwikkelnode pxd-ubuntu-devtop in te richten, voer je het volgende
commando uit. Dit proces duurt ongeveer 13 minuten.
vagrant up pxd-ubuntu-devtop
Verificatie
Domeinlidmaatschap
De pxd-ubuntu-devtop node sluit zich automatisch aan bij het Active Directory (AD)
domein dat beheerd wordt door Ansible. Om te bevestigen dat hij deel uitmaakt van het c2.org domein, voer je het
volgende commando uit:
realm list
vagrant@pxd-ubuntu-devtop:~$ realm list
c2.org
type: kerberos
realm-name: C2.ORG
domain-name: c2.org
configured: kerberos-member
server-software: active-directory
client-software: sssd
required-package: sssd-tools
required-package: sssd
required-package: libnss-sss
required-package: libpam-sss
required-package: adcli
required-package: samba-common-bin
login-formats: %U
login-policy: allow-realm-logins
Inloggen als Tony en root worden
Controleer of je kunt inloggen als domeingebruiker tony (wachtwoord:
Supersecret!
.
Voer het volgende commando uit:
ssh tony@pxd-ubuntu-devtop
Toon mij
Gebruiker tony heeft rechten om root te worden:
sudo su -
Voer exit uit om weer gebruiker Tony te worden:
exit
Wachtwoordloos inloggen met Kerberos op Linux- en Windows-hosts
Kerberos is een netwerk authenticatieprotocol dat veilige, ticket-gebaseerde
authenticatie over systemen mogelijk maakt, waardoor wachtwoordloze toegang mogelijk is zodra een gebruiker
een Ticket-Granting Ticket (TGT) heeft verkregen. In deze setup ontvang je na het inloggen als
tony op pxd-ubuntu-devtop een Kerberos TGT. Dit maakt naadloze
SSH-logins mogelijk naar andere domein-gekoppelde hosts zonder opnieuw inloggegevens in te voeren,
mits de hosts zijn geconfigureerd voor Kerberos authenticatie.
Je kunt de TGT bekijken door uit te voeren:
klist
tony@pxd-ubuntu-devtop:~$ klist
Ticket cache: FILE:/tmp/krb5cc_496801104_TWhKJq
Default principal: tony@C2.ORG
Valid starting Expires Service principal
11/28/25 05:04:48 11/28/25 15:04:48 krbtgt/C2.ORG@C2.ORG
renew until 11/29/25 05:04:48
11/28/25 05:05:03 11/28/25 15:04:48 host/pxd-rproxy1.c2.org@C2.ORG
renew until 11/29/25 05:04:48
Dit stelt Tony in staat om in te loggen op de reverse proxy node pxd-rproxy1 zonder een
wachtwoordprompt:
ssh pxd-rproxy1.c2.org
Vanaf pxd-rproxy1 kan gebruiker Tony SSH-en naar de AD controller pxd-ad.c2.org:
ssh pxd-ad.c2.org
Dit toont een shell vergelijkbaar met onderstaande:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindows
PS C:\Users\tony>
Op pxd-ad heb je nu ook een TGT, die je kunt zien met klist:
klist
PS C:\Users\tony> klist
Current LogonId is 0:0x137acc4
Cached Tickets: (1)
#0> Client: tony @ C2.ORG
Server: host/pxd-win1.c2.org @ C2.ORG
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x60a10000 -> forwardable forwarded renewable pre_authent name_canonicalize
Start Time: 11/28/2025 5:11:40 (local)
End Time: 11/28/2025 15:04:48 (local)
Renew Time: 0
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0x8 -> ASC
Kdc Called:
PS C:\Users\tony>
Dit stelt Tony in staat om verder SSH-en naar een andere Windows node pxd-win1 zonder een
wachtwoordprompt:
ssh pxd-win1.c2.org
Omdat de pxd-win1 host is geconfigureerd om vertrouwd te zijn voor delegatie, kunnen we
verder SSH-hoppen zonder wachtwoordprompt naar pxd-win2.
ssh pxd-win2.c2.org
Dit vertrouwen is ook geconfigureerd door Ansible, zie Vertrouwen voor delegatie configureren in Active Directory voor meer informatie.
Review
Vagrant
De Vagrant box pxd-ubuntu-devtop is gebaseerd op de C2 Platform box
ubuntu24-lxd. Deze configuratie creëert een Vagrant box pxd-ubuntu-devtop
gebaseerd op
LXD en draaiend op Ubuntu 24.04 LTS. De setup omvat labels die
Ansible-groepen definiëren voor gerichte automatisering en configuratie.
100 - name: ubuntu-devtop
101 description: Ansible Development Desktop
102 box: ubuntu24-lxd
103 ip-address: 192.168.60.11
104 plays:
105 - dev/desktop
106 labels:
107 - desktop
108 - ubuntu_devtop
109 - radix_guardian
28 name: c2platform/ubuntu22-desktop
29 version: 0.1.0
30 provider: lxd
31 labels: [ubuntu, lxd, ubuntu22]
32 ubuntu24-lxd:
Note
Door de dynamische inventaris plugin voor Vagrant vertalen de toegewezen labels zich naar Ansible-groepen, die de host targeten en configuratie bieden via groepsvariabelen. Dus behoort de hostpxd-ubuntu-devtop
tot de Ansible-groepen ubuntu, lxd, ubuntu24, desktop,
ubuntu_devtop en radix_guardian.Ansible Play
De Ansible play die de hosts in de ubuntu_devtop groep target, gebruikt twee
rollen:
---
- name: Ubuntu Ansible Development Desktop
hosts: ubuntu_devtop
become: true
roles:
- { role: c2platform.core.linux }
- { role: c2platform.wincore.win }
De inclusie van de Windows-rol lijkt misschien ongebruikelijk op het eerste gezicht, maar het adresseert een
belangrijke vereiste voor Kerberos-functionaliteit. Correcte Kerberos-werking is afhankelijk van
nauwkeurige reverse DNS lookups op Ubuntu hosts. Om dit te ondersteunen, creëert de setup
DNS pointer records (PTR records) voor elke Ubuntu host op de AD controller
pxd-ad met behulp van de Ansible module win_dns_record. De Windows-rol handhabt
dit op basis van de onderstaande configuratie. Merk op dat deze configuratie
van toepassing is op de Ansible-groep ubuntu, wat betekent dat het beleid van het creëren van PTR
records zich uitstrekt tot alle Ubuntu hosts.
---
win_roles: []
win_resources:
- name: "{{ '.'.join(ansible_eth1.ipv4.address.split('.')[-2::-1]) }}.in-addr.arpa"
module: win_dns_zone
type: Primary
replication: Domain
state: present
delegate_to: pxd-ad
- name: "{{ ansible_eth1.ipv4.address.split('.')[-1] }}"
module: win_dns_record
type: "PTR"
zone: "{{ '.'.join(ansible_eth1.ipv4.address.split('.')[-2::-1]) }}.in-addr.arpa"
value: "{{ inventory_hostname }}.{{ px_ad_domain_name }}"
state: present
delegate_to: pxd-ad
Ansible-configuratie
Om beter te begrijpen hoe
Ansible de
Ansible ontwikkeldesktop pxd-ubuntu-devtop inricht, bekijk je de relevante
groepsvariabelen. Deze zijn opgeslagen in de volgende mappen:
group_vars/all: beleid voor alle hosts, inclusief Linux en Windows.group_vars/ubuntu: beleid voor Ubuntu hosts.group_vars/ubuntu_devtop: beleid voor op Ubuntu gebaseerde Ansible ontwikkeldesktops.
Beleid voor Ansible ontwikkeldesktops
De map
group_vars/ubuntu_devtop
bevat twee bestanden: group_vars/ubuntu_devtop/main.yml en group_vars/ubuntu_devtop/kerberos.yml.
group_vars/ubuntu_devtop/main.yml
---
linux_resources:
devtop:
- name:
- virtualenv
- ubuntu-desktop
- xrdp
- snapd
- gedit
- libsecret-tools
- seahorse # GNOME Keyring GUI
type: package
- name: code
type: snap
classic: true
- name: firefox
type: snap
- name: Vault client scripts
type: copy
defaults:
mode: "0755"
resources:
- dest: /usr/local/bin/vault-client.sh
src: vault-client.sh
- dest: /usr/local/bin/vault-client-keyring.sh
src: vault-client-keyring.sh
- name: Create disable screen lock script
type: copy
dest: /usr/local/bin/disable-screen-lock.sh
mode: "0755"
content: |
#!/bin/bash
gsettings set org.gnome.desktop.screensaver lock-enabled false
gsettings set org.gnome.desktop.session idle-delay 0
rm -- "$0"
- name: Create autostart desktop file
type: copy
dest: /etc/xdg/autostart/disable-screen-lock.desktop
content: |
[Desktop Entry]
Type=Application
Exec=/usr/local/bin/disable-screen-lock.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Disable Screen Lock
Comment=Disable screen lock on startup
group_vars/ubuntu_devtop/kerberos.yml
---
linux_resources:
devtop-kerberos:
- name:
- python3-dev
- krb5-user
- libkrb5-dev
type: package
Volgende stap
Met pxd-ubuntu-devtop aangemaakt en geconfigureerd, ga je door naar de volgende stap:
het instellen van de
Ansible-ontwikkelomgeving op deze desktop op een manier
die de configuratie in het air-gapped PHX domein simuleert.
Aanvullende informatie
- Ansible-inventarisproject: Een gestructureerde verzameling bestanden die worden gebruikt voor het beheren van hosts en configuraties. Het omvat doorgaans inventarisbestanden, playbooks, hostconfiguraties, groepsvariabelen en Ansible Vault-bestanden.
- Gebruik dynamische inventaris in ontwikkeling: Richtlijn voor het gebruik van dynamische inventaris in Ansible-ontwikkelomgevingen als concreet voorbeeld om toekomstige volledige automatisering te illustreren voor organisaties die nieuw zijn met Ansible.
- Vertrouwen voor delegatie configureren in Active Directory: Voorbeeld van het beheren van vertrouwen voor delegatie in Active Directory voor Windows- hosts met behulp van de win_resources-variabele in de Windows-rol.
- How to set up SSSD with Active Directory - Ubuntu Server documentation
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.