Files
ansible_windows11_standart_…/README.md
2026-04-02 15:34:53 +02:00

5.3 KiB

[Einleitung]

In diesem Repo befindet sich ein Ansible Playbook zum ausrollen von Standartsoftware und Einstellungen zum Initialem einrichten eines Clients.

[Ansible]

Ansible besteht aus 2 Teilen: einem Management und dem Client. Der Manager berechnet Skripte die dann über eine Shell-Session auf dem Client ausgeführt werden. Dieses Projekt ist darauf ausgelegt einzelne Tags manuell auf den Client zu pushen. Dabei werden die Hostgruppen und Rollen in der Site nacheinander abgearbeitet. Im Inventory befinden sich die Site-abhänigen Parameter des Deployments.

Ansible braucht einen Linux oder Mac als Management-Server. Daher ist hier ein Docker-Compose Projekt unter ./ansible_editor hinterlegt dass einen Container mit allem startet was man braucht. Dieser stellt Visual als Weboberffläche bereit um das Playbook von Git zu klonen, an die Site anzupassen und auszuführen.

[Win11-Deployment]

Am einfachsten ist unter Windows11 eine PS-Remote session einzurichten, diese muss Anfangs eingerichtet werden. Da das cmd-let dafür relativ viel macht hab ich ein PS-Skript hinterlegt dass das wieder rückgänig macht wenn man es nicht mehr braucht.

[Deploy Management]

Prerequesites: Docker compose

cd ansible_editor
docker compose up -d

Aufrufen: http://localhost:8080/root

[Inventory Vorbereiten]

  1. Hosts in Gruppe eintragen (Adresse zu Hosts-Liste zufügen)
  2. "ansible_port" eintragen ( auf client: winrm quickconfig -transport:https)
  3. Benutzerdaten in Vault eintragen und gegebenenfalls Variablen für Benutzer im Inventory ersetzen

[Verschlüsselte Zugangsdaten anlegen/ändern]

export EDITOR=nano

Standartpasswort für vault_pass.yml : 2changeme (Dieses wird beim Ausführen des Playbooks abgefragt)

Standart im Ansible-Vault (./ansible_deployment/group_vars/all/vault_pass.yml):

---
vault_default_domain: .
vault_default_username: user
vault_default_userpass: user123

-> Diese Variablen werden im Inventory aufgerufen und zugeordnet

[ids]

Es gibt mehrere Vaults für mehrere Dinge. Der Hauptvault liegt unter /group_vars/all, die anderen in den Rollen die sie benötigen. Dort können z.b. WG-Peers eingepflegt werden. Die secrets für die vaults werden in ./pass in eine textdatei .pass eingetragen

  • Standart-Vault-ID: main (Standart: 2changeme)
  • Wireguard-Credentials: wg (Standart: 2changemesecret)

[Ansible-Vault Befehle]

Neuen Vault anlegen:

ansible-vault create ./group_vars/all/vault_pass.yml 

Vault entschlüsseln:

ansible-vault view ./group_vars/all/vault_pass.yml --ask-vault-pass 

Vault bearbeiten:

ansible-vault edit ./group_vars/all/vault_pass.yml --ask-vault-pass 

Passwort von File ändern:

ansible-vault rekey ./group_vars/all/vault_pass.yml --ask-vault-pass 

[Management Terminal]

git config --global user.name "Name"
git config --global user.email "email

-> oder änderm im Dockerfile für VS-Studio

cd ansible_deployment
export LANG=C.UTF-8
ansible-playbook -v site.yml

Tags nutzen:

ansible-playbook --tags tools

Verfügbare Tags für Rollen-Packete:

  • system (Systemeinstellungen)
  • tools (Standartprogramme installieren)
  • office_tools (optional, free office-tools)

[Win11 Client]

Als Admin die Poweshell öffnen!!!

Netzwerk darf nicht Public sein!

Get-NetConnectionProfile

Set-NetConnectionProfile -InterfaceAlias "*Ethernet*" -NetworkCategory Private
oder Set-NetConnectionProfile -Name "*Ethernet*" -NetworkCategory Private

Anschalten Powershell-Remotesitzungen:

Enable-PSRemoting 

Einstellungen anzeigen(Port rausfinden): winrm quickconfig -transport:https

Ausschalten von PS-Remotesession

Ausführen als Admin: disable_psremote_script.ps

Prüfen: Get-Service WinRM winrm enumerate winrm/config/listener

Notizen:

Disable-PSRemoting Stop-Service WinRM -Force Set-Service WinRM -StartupType Disabled

Listener löschen: winrm delete winrm/config/Listener?Address=+Transport=HTTP winrm delete winrm/config/Listener?Address=+Transport=HTTPS

Prüfen: winrm enumerate winrm/config/listener

Disable-NetFirewallRule -DisplayGroup "Windows Remote Management"

oder löschen: Get-NetFirewallRule -DisplayGroup "Windows Remote Management" | Remove-NetFirewallRule

LocalAccountTokenFilterPolicy zurücksetzen

Das wird von Remoting oft auf 1 gesetzt.

Set-ItemProperty `
-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" `
-Name LocalAccountTokenFilterPolicy `
-Value 0

Oder komplett löschen:

Remove-ItemProperty `
-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" `
-Name LocalAccountTokenFilterPolicy

Get-PSSessionConfiguration | Unregister-PSSessionConfiguration

time:

detect role: Wert Rolle 0 Standalone Workstation 1 Domain Workstation 2 Standalone Server 3 Member Server 4 Backup DC 5 Primary DC

To:-do: S-1-5-32-556 reg add HKLM\Software\WireGuard /v LimitedOperatorUI /t REG_DWORD /d 1 /f

Enter-PSSession -ComputerName 192.168.99.64 -Credential (Get-Credential)

/etc/krb5.conf

[libdefaults] default_realm = INT.ANSI.INT dns_lookup_realm = false dns_lookup_kdc = false

[realms] INT.ANSI.INT = { kdc = 192.168.99.63 }

[domain_realm] .int.ansi.int = INT.ANSI.INT int.ansi.int = INT.ANSI.INT

kinit Administrator@INT.ANSI.INT