Ansible, Windows, Chocolatey...
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