sysadmin:ansible
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| sysadmin:ansible [2015/01/11 15:58] – [Server di posta] kobe | sysadmin:ansible [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Ansible Roles ====== | ||
| - | Il codice relativo ad Ansible e' suddiviso in roles (una sorta di moduli, pacchetti). | ||
| - | |||
| - | //A role is just an organizational container that you can apply to one or multiple hosts in any configuration.// | ||
| - | |||
| - | Un role puo' avere come dipendenza un altro o piu' roles. | ||
| - | //Ansible Galaxy// e' una sorta di gestore pacchetti dei roles e s' | ||
| - | |||
| - | ===== Role per l' | ||
| - | |||
| - | Qui abbiamo 3-4 role di base (che nel tempo sono leggermente aumentati) finalizzati a tenere su un' | ||
| - | |||
| - | Questi role differiscono principalmente per: | ||
| - | * server su cui agiscono | ||
| - | * frequenza con cui vengono rieseguiti | ||
| - | |||
| - | ==== 0. Master ==== | ||
| - | |||
| - | * Target: master | ||
| - | * Obiettivo: si assicura che e' installato/ | ||
| - | * Tasks: | ||
| - | * installazione di Ansible e Cron | ||
| - | * configurazione di Ansible (symlink a '' | ||
| - | * configurazione [[ssh|client SSH]] (symlink a '' | ||
| - | * cronizzazione di tutti i role di Ansible, alta e bassa priorita' | ||
| - | * Cron: ogni 30 minuti? | ||
| - | |||
| - | Nota: una volta lanciato questo dal portatile non bisogna fare piu' niente, si attiva tutto da solo | ||
| - | |||
| - | ==== 1. Core_high ==== | ||
| - | |||
| - | * Target: all | ||
| - | * Obiettivo: si assicura che il server SSH, i demoni e processi essenziali* e le risorse principali sul server siano OK, in caso contrario invia una mail o un messaggio su jabber | ||
| - | * Cron: ogni 5 minuti? | ||
| - | |||
| - | *In caso di interventi manuali, sara' comunque possibile creare un file di lock per evitare il controllo di certi demoni/ | ||
| - | |||
| - | '' | ||
| - | |||
| - | ==== 2. Test ==== | ||
| - | |||
| - | * Target: 1-2 server | ||
| - | * Obiettivo: si assicura che tutti gli URL ritornino 200, in caso contrario invia una mail o un messaggio su jabber | ||
| - | * Cron: 5 minuti? | ||
| - | |||
| - | Nota: non puo' essere unito a '' | ||
| - | |||
| - | ==== 3+. Tutti gli altri roles ==== | ||
| - | |||
| - | * Target: all (dipende da quali app/ | ||
| - | * Obiettivi: | ||
| - | * template '' | ||
| - | * backup/ | ||
| - | * git rebase master dal branch prod di 1ring | ||
| - | * installazione/ | ||
| - | * app della SPES (rilettore..) | ||
| - | * tutti gli altri task a priorita' | ||
| - | * Cron: 1 volta al giorno | ||
| - | |||
| - | ===== Role per i servizi e le applicazioni ===== | ||
| - | |||
| - | Attualmente abbiamo N role ogni servizi e 1 solo role le applicazioni. | ||
| - | |||
| - | * Ogni servizio (database, server smtp, web server) ha un role che installa/ | ||
| - | * il role '' | ||
| - | |||
| - | Di seguito descriveremo il nostro stack. | ||
| - | |||
| - | ==== Nginx (web server) ==== | ||
| - | |||
| - | Comunica con l' | ||
| - | |||
| - | protocollo di comunicazione in '' | ||
| - | |||
| - | ==== uWSGI (application server) ==== | ||
| - | |||
| - | Da non confondersi con il quasi omonimo protocollo, e' il cuore del deploy ed e' colui che si occupa effettivamente di lanciare gli interpreti e servire le richieste. | ||
| - | |||
| - | * Ogni singolo worker puo' avere piu' thread (noi per ora ne abbiamo solo uno) per aumentare la reqs/s a parita' | ||
| - | * Ogni singolo worker viene lanciato con tutta l' | ||
| - | |||
| - | uWSGI attualmente supporta Python, Ruby, PHP, Perl... purtroppo il supporto per NodeJS/V8 non e' ancora del tutto pronto. | ||
| - | |||
| - | Alternative (su cui siamo rimasti scoperti da uWSGI): | ||
| - | * [[https:// | ||
| - | ==== Database ==== | ||
| - | |||
| - | L' | ||
| - | |||
| - | * relational: | ||
| - | * documental: | ||
| - | * key-value: | ||
| - | * time-series: | ||
| - | ==== Server di posta ==== | ||
| - | |||
| - | Server SMTP, IMAP (TODO) | ||
| - | |||
| - | * Postfix | ||
| - | * / | ||
| - | * Spamassassin | ||
| - | * Dovecot | ||
| - | * Mailman3 | ||
| - | |||
| - | * Mailman2 e Sympa vanno Ansiblizzati? | ||
| - | ==== Cache ==== | ||
| - | |||
| - | Configurazioni piu' avanzate prevedono l'uso di sistemi di cache quali: | ||
| - | * Varnish (in genere si mette davanti a Nginx)) | ||
| - | * Nginx, cache base | ||
| - | * Redis | ||
| - | * Memcached | ||
| - | * [[http:// | ||
sysadmin/ansible.1420991907.txt.gz · Last modified: 2015/01/11 15:58 by kobe
