Skip to content
This repository has been archived by the owner on Feb 17, 2021. It is now read-only.

Latest commit

 

History

History
201 lines (130 loc) · 10.4 KB

julkaisu.md

File metadata and controls

201 lines (130 loc) · 10.4 KB
ID post_title author post_excerpt layout permalink published post_date
102
Julkaisu
Roni
page
true
2017-08-04 08:11:34 -0700

Deploy-toimenpiteet

Deployn automatisointi tapahtuu Capistranon avulla, joka on osa digitoimisto/dudestack-kokonaisuutta. Ensimmäinen deploy suoritetaan aina Capistranon työkalulla, mutta esim. pienet teemapäivitykset hoidetaan suoralla sftp- tai rsync-yhteydellä.

Uusin deployconfig tuotantoon ja stagingiin löytyvät Dropboxista, hakemistopolusta Dude/Palvelin/Deployconfigs (latest).

Vaiheet

Duden julkaisutoimenpiteet eli deploy on monivaiheinen ja varsinaista tiedonsiirtoa ja kansiorakennetta lukuunottamatta (Capistrano) enimmäkseen manuaalinen. Käsipelillä asioiden tekemisellä pyrimme varmistamaan että kaikki menee varmasti kuten pitääkin. Kokonaisuudessaan vaiheisiin kuluu testausta lukuunottamatta aikaa noin varttitunti.

Julkaisun työvaiheet ovat seuraavat:

1. Virtualhostin luominen tuotantopalvelimelle

Kirjaudu valitulle edustapalvelimelle (ghost.dude.fi, craft.dude.fi). Ota vhost-pohja (Dropbox tai edellinen sivusto) ja tallenna vhost seuraavasti:

sudo pico -w /etc/nginx/sites-available/domain.fi
sudo ln -s /etc/nginx/sites-available/domain.fi /etc/nginx/sites-enabled/domain.fi

Kommentoi piiloon rivit ssl_certificate ja ssl_certificate_key tässä vaiheessa, sillä sertifikaattia ei voida hakea ennen kuin domain on toiminnassa. Tallenna näppäinyhdistelmillä ctrl + o ja poistu ctrl + x näppäimillä.

2. Kansioiden ja käyttöoikeuksien luominen

Luo tarvittavat kansiot:

sudo mkdir -p /var/www/domain.fi && sudo mkdir -p /var/www/domain.fi/public_html && sudo mkdir -p /var/www/domain.fi/tmp

Vaihda väliaikaisesti käyttöoikeudet itsellesi deployta varten:

sudo chown -R $(whoami) /var/www/domain.fi

Testaa syntaksi virheiltä:

sudo nginx -t

Käynnistä nginx uudelleen:

sudo service nginx restart

3. Deploy-config tiedoston asettaminen

digitoimisto/dudestackin aloitusscripti (lisää kohdassa Projektin aloitus) määrittää oletuskonffit valmiiksi, mutta julkaistaessa on hyvä tarkistaa että config on ajan tasalla. Ensin säädä siis config/deploy/production.rb -tiedosto kuntoon.

4. Nimipalvelinten ohjaus

Ylläpitoasiakkaille: Ota talteen domainin siirtoavain tai välittäjänvaihtotunnus (siirtyvä domain) tai rekisteröi uusi domain. Tämän jälkeen päivitä nimipalvelimet Cloudflarelle. Lisää @ ja www -tietueet osoittamaan valitulle palvelimelle (craft: 185.87.110.7, ghost: 185.87.110.9).

Odota kun domain tulee voimaan. Jos aikataulu on kriittinen, voit testata tuotantopalvelimen jo etukäteen lisäämällä rivin /etc/hosts-tiedostoon seuraavasti:

185.87.110.7 domain.fi www.domain.fi

5. HTTPS-sertifikaatti

Kun nimipalvelimet ovat päivittyneet, laita SSL-sertifikaatti paikalleen:

/opt/letsencrypt/certbot-auto certonly --webroot -w /var/www/domain.fi/public_html -d domain.fi -d www.domain.fi

Jos palvelimella on ohjauksia muista domaineista, lisää seuraava ennen muita location-blokkeja ohjausten server-blokkien sisään:

location /.well-known/ {
    root /var/www/domain.fi/public_html;
}

6. Tietokantatunnuksen ja käyttöoikeuksien luominen tuotantopalvelimelle

Kirjaudu tuotannon tietokantapalvelimelle (beardfish.dude.fi, faith.dude.fi) ja luo tietokanta seuraavilla komennoilla (kohtiin projektinnimi, turvallinensalasana ja edustapalvelimesta riippuen 192.168.0.5 (craft) tai 192.168.0.7 (ghost)):

CREATE USER 'käyttäjänimi'@'192.168.0.5' IDENTIFIED BY 'turvallinensalasana';
GRANT ALL PRIVILEGES ON käyttäjänimi.* TO 'tietokannannimi'@'192.168.0.5';
FLUSH PRIVILEGES;

Nämä komennot löytyvät myös kun painat ylöspäin, jos olet laittanut ne aikaisemminkin. Lopuksi kirjaudu ulos palvelimelta.

7. Luo tietokanta tuotantopalvelimelle

Kirjaudu SSH-tunneloinnin avulla (Sequel Pro) tietokantapalvelimelle. Luo tyhjä tietokanta valitsemallesi nimelle.

8. Siirrä tietokanta

Exporttaa tietokanta staging-ympäristöstä (gunship.dude.fi) ja importtaa se tuotantoympäristöön (Sequel Pro).

9. Aja ensimmäinen (initial) deploy ja lisää ympäristön määrittelyt ja tunnukset .env-tiedostoon

Tarkista tässä vaiheessa että composer.json-tiedosto on ajan tasalla ja sisältää kaikki oleelliset lisäosat. Sitten aja deploykomento projektikansiossa:

cap production deploy

Ensimmäisellä kerralla saat virheen, tämä on normaalia.

00:02 deploy:check:linked_files
      ERROR linked file /var/www/domain.fi/deploy/shared/.env does not exist on 185.87.110.7

Kopioi hakemistopolku talteen ja luo .env-tiedosto seuraavasti

sudo pico -w /var/www/domain.fi/deploy/shared/.env

Liitä .env-tiedosto projektikansiosta muuttaen saltteja ja avaimia lukuunottamatta tiedot vastaamaan tuotantoa (WP_ENV=production).

10. Siirrä ja optimoi mediakirjasto

Kirjaudu staging-palvelimelle SFTP:llä (craft.dude.fi) ja hae kuvat projektihakemistosi shared/media -kansiosta. Tämän jälkeen vedä media-kansio ImageOptimin läpi.

Siirrä optimoidut kuvat tuotantopalvelimelle /var/www/domain.fi/deploy/shared/media -kansioon.

11. Julkaisu! Aja varsinainen deploy-komento

On virallisen julkaisutoimenpiteen aika. Aja uudestaan komento:

cap production deploy

13. Ohjaa testiympäristö tuotantoon

Muokkaa testiympäristön vhostia:

sudo pico -w /etc/nginx/sites-enabled/asiakas.dude.fi

Lisää rivi:

rewrite ^/projektinnimi(.*)$ https://www.domain.fi permanent;

Testaa syntaksi virheiltä:

sudo nginx -t

Tallenna ja käynnistä nginx-prosessit uudelleen:

sudo service nginx restart

14. Testaa sivusto

Käy sivut läpi niin edustan puolella kuin wp-adminissakin ja katso että kaikki toimii. Sitten siirry käymään tarkistuslistaa läpi.

Tarkistuslista

Ennen julkaisua ja julkaisun jälkeen käydään aina seuraava tarkistuslista huolellisesti läpi. Lista löytyy myös Dropboxista, kansiosta Dude/Tärkeät asiakirjat/muut/Ennen julkaisua huomioitavaa.todo, jota on ylläpidettävä samaan tahtiin kuin alla olevaa. Dokumentin voi myös kopioida projektikansioon ja ruksata SublimeTextin PlainTasks -packagea hyödyntämällä.

Ennen julkaisua

☐ WordPress Yleiset Asetukset ☐ Faviconit ja muut ikonit ☐ Testaa templatet läpi: haku, arkisto, avainsanat, ym. ☐ Google Analytics ☐ Tarvittavat 301 redirectit ☐ Bloggauksen muotoilut ☐ Formien testaus ☐ Katso ettei missään lue "Etusivu", perus SEO-asiat kuntoon ☐ screenshot.png ☐ style.css - teeman tiedot kuosiin ☐ Optimoi kuvat ImageOptimilla/Imagify (/media ja teeman kuvakansio) ☐ Lisää maksullisien lisäosien lisenssit paikalleen ☐ WordPress-päivitykset ☐ .htaccess Redirect 301 /asiakas http://www.asiakas.fi tai nginx-redirectit, jos on ☐ Jos sopii projektiin/sovittu/saittiuudistus: Screenshotteja Google-näkyvyyden tilanteesta ennen julkaisua (Firefoxin full-page screenshot-toiminto) ☐ Esteettömyystestaus päällisin puolin Chromen Alix-lisäosalla ☐ Aja gulp uncss kun tiedät että CSS:ään ei tule enää muutoksia ☐ SendGrid API key ja .env tarkistus ☐ Web Accessibility Checklist

WooCommerce

☐ Tarvittaessa: Verkkokaupan Cache ☐ Maksut päälle

Julkaisun jälkeen

☐ WP Rocket päälle ☐ ManageWP päälle ☐ AdminLabs -seuranta päälle ☐ Google Analytics -tsekkaus ☐ HTTPS-sertifikaatti ☐ Let's Encrypt auto renew -scripti paikalleen (/etc/letsencrypt/con gs, /etc/bin/ josta renew-scriptin kopiointi uudelle sivustolle ja sitten sudo crontab -e johon entry) ☐ Nopeuden testaus PageSpeed Insightin avulla ☐ Testaa nopeus KeyCDN palvelulla ☐ Formien testaus ☐ Sähköpostiliikenteen testaus (SendGrid) ☐ Päivitä urlit lisärillä, wp-clillä tai Go Live Update Urls -lisäosalla, tai SQL-versio

update wp_posts set post_content = replace(post_content, 'https://asiakas.dude. /PROJEKTINIMI_TÄHÄN', 'http://www.PROJEKTINIMI_TÄHÄN.com');
☐ Backupit päälle (muokkaa /etc/bin/backup.conf ja lisää uudelle riville sivustonnimi. , tietokannannimi) ☐ Asiakastyytyväisyyskysely (Typeform) ☐ Testaa Internet Exporer 11

Extraa

☐ "Toteutus: DUDE" footeriin, linkki ja lupa ☐ Testaa typografia blogissa, kopioi mallipohja tästä ☐ HTML:n validointi W3 validaattorilla ☐ Estä trace- ja pingbackien lähettäminen ☐ Testaa esteettömyys aCheckerillä ☐ Mikroformaatit, schemat, ks. Google Rich Snippets ☐ Käy pääpiirteittäin läpi Webdev checklist