Windows munkaállomásra telepítünk alternatív RDP kiszolgálót, ThinStuff használatával. A felhasználók felvitelére, program telepítésre ansible-t használtam, a Windows csomagok chocolatey csomagkezelővel települnek.

Bevezető

Chocolatey

A Chocolatey-vel a Windows csomagok telepítésének autómatizálása oldható meg. Jelen esetben a ThinStuff aktuális verziója készült vele a cég által készült leírás alapján. Későbbiekben használható a verzió frissítés miatt, újragenerálható a csomag.1

Új telepítésnél, vagy gép cserénél a licenszt utólag kell beállítani.2

Ansible

Windows gépek kezelése ansible-n keresztül WinRM segítségével történik. A lenti PowerShell script ezt készíti elő.

Az ansible-t futtató gépen a hosts fájl szerkesztése szükséges.

A lefuttatott playbook az alábbi feladatokat csinálja meg:

  • kikapcsolja a rendszer újraindítást hiba esetén
  • létrehozza a távoli felhasználókat a win_users_list változó beállításai alapján, csoport beállítások
  • felhasználói profil létrehozása
  • engedélyezi az SMB1 protokoll használatát, a változások miatt újraindítja a gépet
  • windows hitelesítő adatok beállítása, hálózati meghajtók beállítása
  • RDP engedélyezése, tűzfal
  • alap alkalmazások telepítése Chocolatey hivatalos repository-ból
  • ThinStuff telepítése a korábban generált csomagból
  • parancsikonok létrehozása

Chocolatey3

Create package

choco new packageName
cd packageName
  • edit packageName.nuspec file
  • edit tools\chocolateyinstall.ps1
  • edit tools\chocolateyuninstall.ps1
choco pack

Use generated nupkg in Ansible.

Thinstuff chocolatey package4

Currently private repository.

Ansible

Enable WinRM on Windows to be an Ansible Managed Node5

with elevated privileges

$url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
$file = "$env:temp\ConfigureRemotingForAnsible.ps1"

(New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)

powershell.exe -ExecutionPolicy ByPass -File $file

Install collections

# on control node
ansible-galaxy collection install ansible.windows
ansible-galaxy collection install community.windows

Ansible vault

Encrypt/Decrypt/View/Edit

ansible-vault encrypt vaultfile
ansible-vault decrypt vaultfile
ansible-vault view vaultfile
ansible-vault edit vaultfile

Playbook

Clone repository6

git clone https://github.com/csepely/thinstuff-xp-vs-server.git
#
# arosa-rdp
#
git clone https://github.com/csepely/arosa-rdp.git

Edit following files

If necessary edit hosts file.

group_vars/all/vault

Uncomment vault_ variables, set vaules, then encrypt.

group_vars/windows/vault

Uncomment vault_ variables, set values:

  • vault_server_ip
  • vault_server_user
  • vault_server_pass
  • vault_server_share
  • vault_win_users_list

Then encrypt.

Execute playbook

# on control node
ansible-playbook site.yml --ask-vault-pass

Forrás