Ansible Academy · Lezione

Smoke test, rollback e notifiche

Verifichi, ripristini e segnali il deployment

Lezione 4 di 413 passaggi

Smoke test, rollback e notifiche è una lezione Ansible Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ansible Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ansible Academy include 4 lezioni in totale.

Il deploy non termina al reload

Un play completato non è un'app funzionante. Servono ancora smoke test, una procedura di rollback e una notifica. Completi il ciclo. 🔁

Esegua uno smoke test sull'endpoint

Interroghi una route reale con il modulo uri e verifichi che restituisca 200. Se l'app non risponde correttamente, il deploy deve fallire in modo evidente.

- name: Smoke test
  ansible.builtin.uri:
    url: https://app.example.com/health
    status_code: 200
    return_content: true

Verifichi la versione corretta

Vada oltre: legga la risposta e usi assert per confermare che la versione attiva corrisponda a quella appena distribuita.

- ansible.builtin.assert:
    that:
      - "app_version in smoke.content"
    fail_msg: "Wrong version live"

Racchiuda il deploy in un block

Raggruppi il deploy e i test in un block, così un singolo errore può attivare un'unica procedura di ripristino condivisa.

- block:
    - import_role:
        name: deploy
    - import_tasks: smoke.yml

Esegua il rollback in rescue

Inserisca la logica di annullamento in rescue: ridistribuisca la versione precedente, così una release non riuscita non lascerà mai gli utenti con codice difettoso.

  rescue:
    - name: Roll back
      ansible.builtin.git:
        repo: "{{ app_repo }}"
        version: "{{ previous_version }}"
        dest: /srv/app

Riabiliti sempre il traffico

Usi always per rimettere il nodo dietro al bilanciatore di carico, sia che il deploy vada a buon fine sia che venga eseguito il rollback. Non lasci mai un host isolato.

  always:
    - community.general.haproxy:
        state: enabled
        host: "{{ inventory_hostname }}"
      delegate_to: lb1

Fallisca subito e in modo chiaro

Quando qualcosa non va, interrompa l'esecuzione con un messaggio utile usando il modulo fail, così il log indica esattamente cosa si è rotto.

- ansible.builtin.fail:
    msg: "Health check failed on {{ inventory_hostname }}"

Informi il team

Comunichi l'esito. Un task community.general.slack pubblica un messaggio di successo o di errore, così il team sa che il deploy è terminato.

- community.general.slack:
    token: "{{ slack_token }}"
    msg: "Deployed {{ app_version }} ✅"

Email o chat, a Sua scelta

Preferisce l'email? Il modulo mail invia un riepilogo. Qualsiasi canale va bene: l'importante è avere un segnale di deploy chiaro e automatico.

- community.general.mail:
    to: ops@example.com
    subject: "Deploy {{ app_version }} complete"

Conservi l'ultima versione valida

Il rollback funziona solo se la versione è stata tracciata. Registri previous_version prima del deploy, così rescue saprà cosa ripristinare.

vars:
  previous_version: "2.4.0"
  app_version: "2.4.1"

Un deploy di cui fidarsi

Esegua i test, faccia rollback in caso di errore, ripristini sempre il traffico e informi il team. Questo è un deploy pronto per la produzione, dall'inizio alla fine. 🎉

Controllo rapido

Una sezione garantisce il ripristino del traffico.

Riepilogo

Ha completato il ciclo: smoke test, rollback in rescue, riabilitazione in always e notifiche al team. Modulo conclusivo completato! 🏆

Gratis per iniziare

Impara YAML con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Smoke test, rollback e notifiche» è gratuita?

Sì — il testo completo di «Smoke test, rollback e notifiche» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ansible Academy, passa a CoddyKit PRO. Il corso Ansible Academy include 4 lezioni in totale.

Cosa imparerò in «Smoke test, rollback e notifiche»?

Verifichi, ripristini e segnali il deployment Eserciti Ansible Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Ansible Academy?

Non è richiesta alcuna esperienza precedente. Ansible Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Smoke test, rollback e notifiche»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Ansible Academy?

Sì. Ogni lezione Ansible Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Progettare il progetto: ruoli e inventory
  2. Effettuare il provisioning, rafforzare e inizializzare gli host
  3. Deploy progressivo dietro il load balancer
  4. Smoke test, rollback e notifiche
← Torna a Ansible Academy