Ansible Roles Lab: Nginx Role¶
Navigeerimine
Kasuta paremal olevat sisukorda kiireks navigeerimiseks ↗️
Eesmärk: Luua töötav Ansible role
Lab ülesanded¶
Ülesanne 1: Role struktuuri loomine¶
Bash | |
---|---|
Checkpoint: ls -la
peaks näitama 8 kausta/faili
Ülesanne 2: Defaults seadistamine¶
Fail: defaults/main.yml
Nõuded:
- Defineerige vähemalt 5 muutujat nginx jaoks
- Üks muutuja peab kasutama Jinja2 (näiteks: {{ ansible_processor_vcpus }}
)
- Dokumenteerige kommentaaridega
Vihje: Mõelge portidele, kasutajatele, SSL-ile
Test:
Bash | |
---|---|
Ülesanne 3: Installation tasks¶
Fail: tasks/install.yml
Nõuded:
1. Update package cache (ainult Debian/Ubuntu)
2. Install nginx
3. Create nginx user
4. Create directories: /var/www/html
, /etc/nginx/sites-available
, /etc/nginx/sites-enabled
Looge ka: tasks/main.yml
Test:
Bash | |
---|---|
Ülesanne 4: Nginx template¶
Fail: templates/nginx.conf.j2
Nõuded: - Kasutage vähemalt 3 muutujat defaults'ist - Lisage conditional block ({% if %}) - Worker processes peab sõltuma CPU tuumadest
Näide algus:
Nginx Configuration File | |
---|---|
Fail: tasks/configure.yml
YAML | |
---|---|
Test: Template peab genereeruma ilma vigadeta
Ülesanne 5: Handlers¶
Fail: handlers/main.yml
Nõuded: 1. Handler "restart nginx" 2. Handler "reload nginx"
Test: Handler peab olema service
mooduliga
Ülesanne 6: Virtual hosts¶
Fail: templates/vhost.conf.j2
Nginx Configuration File | |
---|---|
Fail: tasks/vhosts.yml
Nõuded:
1. Loop läbi nginx_vhosts
listi
2. Create vhost config igale saidile
3. Create document root kataloogid
4. Enable sites (symlink)
defaults/main.yml lisa:
YAML | |
---|---|
Ülesanne 7: SSL sertifikaadid¶
Fail: tasks/ssl.yml
Nõuded:
1. Genereeri self-signed cert kui nginx_ssl_enabled: true
2. Kasuta OpenSSL käsku
3. Cert kehtib 365 päeva
Käsk vihjeks:
Bash | |
---|---|
Ülesanne 8: Idempotency test¶
Fail: tasks/main.yml
Ühendage kõik taskid:
YAML | |
---|---|
Test: Käivitage 2x järjest, teine kord ei tohi midagi muuta
Ülesanne 9: Test playbook¶
Fail: ~/ansible-roles-lab/test.yml
YAML | |
---|---|
Lõpptest:
Bash | |
---|---|
Hindamiskriteeriumid¶
Kohustuslik (5p)¶
- Role struktuur õige
- Nginx installeerub
- Template töötab
- Handler töötab
- Idempotent
Lisapunktid¶
- SSL töötab (+1p)
- Virtual hosts töötab (+1p)
- Validation tasks (+1p)
- README.md (+1p)
- Meta informatsioon (+1p)
Vihjed probleemide korral¶
Nginx ei käivitu:
Template ei genereeru:
Bash | |
---|---|
Handler ei käivitu: - Kontrollige, kas task muutis midagi (changed: true) - Notify nimi peab täpselt klappima
Esitamine¶
- Push GitHub'i:
ansible-roles-lab/
kaust - README.md peab sisaldama kasutamise näidet
- Role peab töötama Ubuntu 20.04/22.04