Felhasználói eszközök

Eszközök a webhelyen


oktatas:linux:konfiguraciokezeles:ansible:windowson

< Ansible

Ansible Windowson

Bevezetés

Adott egy teremnyi Windowsos számítógép. Szeretnék automatizálni a telepítésüket távolról.

Szükséges szoftverek Windowsos célgépen:

  • Chocolatey
  • Python
  • WinRM beállítva (ez eleve létezik Windowson, csak be kell állítani)
  • pywinrm (Python modul)

A teszteléskor a célgép egy Windows 10 volt, ahol futtattam az Ansible-t egy Debian 11.

Windowson

Chocolatey

Telepíteni kell a Chocolatey szoftvert:

A telepítés a PowerShellben egy parancs. A fenti weblapon megtaláljuk a parancsot, ami elég hosszú. A PowerShell parancs rendszergazdai kell legyen.

Több információt talál a Chocolatey lapon.

Python

Rögtön használjuk a Chocolatey szoftvert a Python telepítésére, ha az még nincs a gépen:

choco install python

A choco program rendszergazdaként kell fusson, de szimpla cmd-ben is futhat.

Scriptek

Engedélyezni kell PowerShell scriptek futtatását az aktuális felhasználónak. PowerShellben, rendszergazdaként:

Set-ExecutionPolicy Unrestricted -Scope CurrentUser

Ellenőrzés:

Get-ExecutionPolicy

Ezt kell lássuk:

Unrestricted

ConfigureRemotingForAnsible.ps1

Letöltjük a következő scriptet és futtatjuk a WinRM beállításához:

GitHubon a script:

Futtatjuk rendszergazdaként, PowerShellben:

.\ConfigureRemotingForAnsible.ps1
A PowerShell rendszergazdaként kell fusson.

A Windows frissítés után előfordulhat, hogy újra kell futtatni.

pywinrm

A Windowson telepíteni kell továbbá pywinrm Python modult:

pip install pywinrm

Felhasználó

Windowson szükség van egy jelszavas rendszergazda felhasználóra. Csak számokból álló jelszó nem megfelelő.

Tűzfal

Windowson engedélyezni kell a 5986 és 5985 portot.

Linuxon

A konfiguráció nem csak Linuxról indítható; itt most Linuxon kerül bemutatásra, hogyan készítünk egy konfigurációt.

Ha nincs telepítve az Ansible, Debian GNU/Linuxon:

apt install ansible

Használathoz, linuxos gépen összeállítom az ansible fájlokat:

feladat01/
  |-ansible.cfg
  |-hosts
  `-win.yml

A fájlok rendre a következők:

  • ansible.cfg - Itt van megadva mi az inventory fájl neve.
  • hosts - Az inventory fájlban van megadva mi a gépek elérése.
  • win.yml - A yaml fájlban van leírva milyen állapotot kell felvenni a gépeknek.

Ha Windowsos gép címe 192.168.5.101, akkor az „inventory” fájl tartalma:

hosts
[wingep]
192.168.5.101 ansible_connection=winrm ansible_user=testuser ansible_password=titok ansible_winrm_server_cert_validation=ignore

Több IP cím is felsorolható egymás alatt. A [wingep] a szekció címe, tetszőleges névvel létrehozható.

Egy playbook példa, ahol telepítésre kerül a Geany:

win.yml
---
- hosts: all
  remote_user: testuser
  tasks:
    - name: Geany telepítése
      win_chocolatey:
        name: geany
        state: present

Egy ansible konfigurációs fájl, ahol megmondom, hol van az invertori fájl. Az inventori fájl esetünk be a „hosts”:

ansible.cfg
[defaults]
inventory = hosts

Az ansible-playbook parancs az ansible.cfg fájlban keresi a beállításokat. A hosts fájl helyett más fájl is használható.

Futtatás:

ansible-playbook win.yml

A hosts fájl változókkal

Így nem kell megadni soronként a gépekhez tartozó változókat.

hosts
[gepek]
192.168.10.11
192.168.10.12
192.168.10.13
192.168.10.14
 
[gepek:vars]
ansible_user=adminuser
ansible_password=titok
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore

Gépek ellenőrzése

ansible gepek -i hosts -m win_ping

A parancs megnézi, hogy a gépek elérhetők-e.

Csomagkezelés

Több csomag megadása egyetlen feladatban:

win.yml
---
- hosts: all
  remote_user: adminuser
  tasks:
    - name: Geany, VSCode és Node.js telepítése
      win_chocolatey:
        name: {{ item }}
        state: present
      loop:
        - geany
        - vscode
        - nodejs

Fájlmásolás

- name: Egyetlen fájl másolása
  win_copy:
    src: /srv/valahol/valami.conf
    dest: c:\Temp\masiknev.conf

- name: Másolás a fájlnév megtartásával
  win_copy:
    src: /src/valahol/valami.conf
    dest: c:\temp\

- name: Könyvtár másolása (A C:\Temp\temp_files jön létre)
  win_copy:
    src: files/temp_files
    dest: c:\Temp

- name: Könyvtár tartalmának másolása rekurzívan
  win_copy:
    src: files/temp_files/
    dest: c:\Temp

- name: Fájl másolása, ahol a forrás a távoli gép
  win_copy:
    src: C:\temp\valami.txt
    dest: C:\valahova\valami.txt
    remote_src: True

- name: Könyvtár másolása, ahol a forrás a távoli gép
  win_copy:
    src: C:\temp
    dest: C:\valami
    remote_src: True

- name: Fájl tartalmának beállítása
  win_copy:
    dest: C:\temp\valami.txt
    content: abc123

Telepítés helye

A legtöbb program a c:\Program Files vagy a c:\Program Files (x86) könyvtárba telepszik. Ezek általában a menüből is elérhetők. A többi program a c:\ProgramData nevű könyvtárba kerül:

C:\ProgramData\chocolate\lib

Windowsos parancsok

- name: Parancs végrehajtás
  ansible.windows.win_command: whoami
- name: Parancs végrehajtás
  ansible.windows.win_command: 
    cmd: 'echo "valami" > adat.txt'

Linkek

oktatas/linux/konfiguraciokezeles/ansible/windowson.txt · Utolsó módosítás: 2024/07/28 10:53 szerkesztette: admin