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

255 lines
5.3 KiB
Markdown

# [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 <ID>.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