🎯 Cel
W tym poradniku nauczysz się jak:
- ✅ Zainstalować Ansible na Debianie (np. VirtualBox/WSL),
- 🔗 Połączyć się z lokalnym systemem Windows,
- ▶️ Uruchamiać skrypty (playbooki) Ansible,
🧰 Wymagania wstępne
- 📦 Masz zainstalowanego Debiana (VM lub WSL).
- 🖥 Masz lokalnego Windowsa.
- 🌐 Oba systemy widzą się w sieci (ping działa).
🐧 Krok 1: Instalacja Ansible w Debianie
sudo apt update sudo apt install python3-pip python3-venv -y
Utwórz środowisko wirtualne:
python3 -m venv ~/ansible-venv source ~/ansible-venv/bin/activate pip install ansible pywinrm
🧠 Tip: utwórz alias do aktywacji środowiska:
echo 'alias ansibleenv="source ~/ansible-venv/bin/activate"' >> ~/.bashrc source ~/.bashrc
🗂 Krok 2: Foldery projektu
mkdir ~/ansible-windows cd ~/ansible-windows
W tym folderze będą:
hosts.ini– lista maszyn Windows,playbook.yml– zadania do wykonania.
📄 Krok 3: Plik hosts.ini
[windows] 192.168.1.100 # To jest przykładowy adres IP do celu ćwiczenia [windows:vars] ansible_user=Administrator ansible_password=TwojeHaslo ansible_connection=winrm ansible_winrm_transport=basic ansible_winrm_server_cert_validation=ignore
🔐 Krok 4: Konfiguracja Windows (PowerShell)
$hostname = hostname
$certificate = New-SelfSignedCertificate -DnsName $hostname -CertStoreLocation Cert:\LocalMachine\My
winrm set winrm/config '@{Service=@{AllowRemoteManagement="true"}}'
winrm set winrm/config/service/auth '@{Basic="true"}'
winrm set winrm/config/client '@{TrustedHosts="*"}'
netsh advfirewall firewall set rule group="Windows Remote Management (HTTP-In)" new enable=yes
Super, widzę jakieś dziwne rzeczy powyżej ale co to jest i co robi? Postaram się wyjaśnić w prosty sposób o co chodzi.
Wyobraź sobie, że Twój komputer z Windowsem to tak jakby zamek, a Ty chcesz móc nim trochę sterować na odległość, albo pozwolić komuś zaufanemu (na przykład administratorowi IT) na zdalne zarządzanie nim. Ten "krok" to instrukcja dla Twojego komputera, jak się do tego przygotować, aby to zdalne sterowanie było możliwe i bezpieczne.
Ten kod powyżej uruchamiany w narzędziu zwanym PowerShell (to taka specjalna "konsola" z komendami dla Windowsa) robi po kolei kilka rzeczy:
1. `$hostname = hostname`
Co to robi: Komputer sprawdza, jak się nazywa. Każdy komputer w sieci ma swoją unikalną "nazwę", tak jak Ty masz imię. Ta komenda po prostu "zapamiętuje" tę nazwę.
Po co: Ta nazwa będzie potrzebna do kolejnych kroków, aby komputer wiedział, jaki certyfikat sobie wydać.
2. `New-SelfSignedCertificate`
Co to robi: Twój komputer tworzy sobie taką jakby "cyfrową legitymację" (certyfikat bezpieczeństwa). Jest to certyfikat "samo-podpisany", czyli komputer sam sobie go wystawił.
Po co: Potrzebne do bezpiecznej komunikacji z innymi komputerami.
3. `winrm set winrm/config`
Co to robi: Włącza możliwość zdalnego zarządzania przez usługę WinRM.
Po co: To jakby otwarcie konkretnych "drzwi", przez które będzie można wysyłać polecenia z zewnątrz.
4. `winrm set winrm/config/service/auth`
Co to robi: Włącza autoryzację podstawową – użytkownik musi podać login i hasło.
Po co: Wzmacnia bezpieczeństwo – nie każdy może się połączyć.
5. `winrm set winrm/config/client`
Co to robi: Pozwala na połączenie z dowolnego hosta.
Po co: Ułatwia połączenie w środowisku testowym. UWAGA: To niebezpieczne w środowisku produkcyjnym.
6. `netsh advfirewall`
Co to robi: Otwiera zaporę sieciową dla połączeń WinRM.
Po co: Bez tego połączenie z zewnątrz mogłoby być zablokowane.
Ten kod przygotowuje Twój komputer z Windowsem do zdalnego zarządzania. Tworzy dla niego cyfrową "legitymację", włącza specjalny system do zdalnych połączeń, ustawia podstawowe zabezpieczenia (logowanie hasłem) i otwiera dla niego "furtkę" w wbudowanej ochronie komputera. Jednak krok z TrustedHosts="*" to taka "szeroko otwarta furtka", która w rzeczywistości, poza specjalnymi, kontrolowanymi sytuacjami, nie jest zalecana ze względów bezpieczeństwa!
📑 Krok 5: Playbook
Stwórz plik playbook.yml z zawartością:
- name: Sprawdź status usługi Windows
hosts: windows
tasks:
- name: Sprawdź usługę Windows Update
win_service:
name: wuauserv
register: wynik
- name: Wyświetl status
debug:
var: wynik
▶️ Krok 6: Uruchomienie playbooka
ansible-playbook -i hosts.ini playbook.yml
🧪 Krok 7: Test połączenia
ansible windows -i hosts.ini -m win_ping
✅ Jeśli zobaczysz pong – wszystko działa!
💡 Dodatkowe wskazówki
- Nie używaj
localhost, tylko prawdziwy IP Windowsa. - Trzymaj pliki w jednym katalogu (
~/ansible-windows). - Jeśli korzystasz z WSL – upewnij się, że firewall na Windows pozwala na WinRM.
🎓 Masz pytania? Chcesz kolejny tutorial?
Daj znać! Ten poradnik jest dla Ciebie 💙

Brak komentarzy:
Prześlij komentarz