Stagingiin vieminen

Kun sivuston saatu siihen pisteeseen, että sitä voi selata, se laitetaan testiin ja näytille testipalvelimelle, jota myös näyttöpalvelimeksi (engl. staging server) kutsutaan. Duden staging-sivustot sijaitsevat aina omassa domainissaan, joka on muotoa asiakas.vaiheessa.fi. Tietokantapalvelin staging-sivustoille on nimeltään gunship ja sijaitsee osoitteessa gunship.dude.fi.

1. Työkalujen asentaminen

Varmista että sinulla on oikea versio Capistranosta kirjoittamalla projektin juuressa:

bundle install

Jos ylläoleva bundler-komento ei lähde syystä tai toisesta pelittämään, voit asentaa paketit myös käsin seuraavasti:

sudo gem install capistrano
sudo gem install capistrano-composer

2. Tietokannan luominen (jos ei jo luotu)

Huom! Voit skipata tämän vaiheen, jos olet luonut tietokannan Gunshipille jo projektin luomisvaiheessa.

Kanta täytyy olla Gunshipillä. Kannan luominen: Mene Sequel Pro:hon, avaa localhost, exporttaa lokaali kanta, File > Export. Avaa yhteys Gunshipin tietokantapalvelimeen, Choose Database > Add database > projektinnimi, File > Import, kannan sql-tiedosto.

Tietokantatunnareiden luominen: Kirjaudu ssh:lla:

ssh tunnus@gunship.dude.fi

Sitten kirjoita:

mysql -u root -p

Katso 1Passwordin gunshipistä MySQL root pass. Luo kanta seuraavasti:

CREATE USER 'projektinnimi'@'%' IDENTIFIED BY '1passwordissa generoitu salasana';

Anna oikeudet komennolla:

GRANT ALL PRIVILEGES ON projektinnimi.* TO 'projektinnimi'@'%';

Ota oikeudet käyttöön:

FLUSH PRIVILEGES;

Huom: Jatkoa ajatellen paina ylöspäin niin saat aiemmat komennot ja voit kopata niistä mallia. Älä sulje MySQL-komentoriviä vaan kopioi salasana ja lisää se projektin juureen, .env-tiedoston DB_PASSWORD -kohtaan.

3. Tiedostojen vieminen staging-palvelimelle

  1. Mene komentorivillä projektiin, cd ~/Projects/projektinnimi ja varmista että kaikki muutokset ovat masterissa, siirry master branchiin git checkout master ja mergeä tarvittaessa.
  2. Kirjoita cap install

    Jos saat Permission denied (publickey) -ilmoituksen, varmista että sinulla on oikeudet käyttää palvelimella GitHubia kirjautumalla sisään ssh:lla: tunnus@gunship.dude.fi ja luomalla avainpari komennolla:

    ssh-keygen -t rsa

    Tämän jälkeen avainpari haetaan komennolla:

    cat ~/.ssh/id_rsa.pub

    Sitten GitHubiin, klikkaa avataria ja Settings > SSH and GPG keys > Title: gunship.dude.fi, Key, copy paste komentoriviltä.

    Jos et ole tehnyt stageen deployamista aiemmin, sinun täytyy myös autentikoida githubiin composerin avulla, muuten saat deployssa virheen Could not authenticate against github.com. Tämän voit tehdä luomalla tokenin täällä. Laita nimeksi vaikka Gunship ja ruksaa kaikki oikeudet. Älä sulje sivua, ota token-koodi talteen. Sen jälkeen aja seuraava gunshipillä kirjautumalla sisään ssh:lla: tunnus@gunship.dude.fi:

    composer config github-oauth.github.com TÄHÄN_TOKEN_KOODISI
  3. Avaa config/deploy/staging.rb, code tai nano komennolla tai avaamalla suoraan editoristasi. Korvaa tiedoston sisältö uusimmalla staging.rb deploy-configilla (löytyy Cacherista, tässä suora linkki).
  4. Korvaa USERNAME_HERE omalla gunship.dude.fi-käyttäjätunnuksella (1Password) ja PASSWORD_HERE omalla gunship-dude.fi-salasanalla (1Password). Korvaa PROJECT_NAME_HERE projektin nimellä (eli pääkansion nimi Projects tai /var/www/ -kansion alla), ( + + F). Tarkista että wp-cli komentojen urlit ovat oikein, pitäisi olla https://projektinnimi.test ja https://projektinnimi.vaiheessa.fi. Tallenna tiedosto.
  5. Tarkista vertaamalla esimerkiksi edellisen julkaisun projektin reposta, että config/deploy.rb näyttää oikealta ja git osoittaa oikeaan paikkaan.
  6. Mene komentoriville projektikansioon ja aja cap staging deploy
  7. Saat viestin: ERROR linked file /var/www/projektinnimi/shared/.env does not exist, kuuluu asiaan. Kirjaudu palvelimelle tunnuksillasi ssh tunnus@gunship.dude.fi, kopioi polku virheilmoituksesta ja aja komento seuraavasti: nano /var/www/projektinnimi/shared/.env (kopioi polku virheilmoituksesta)
  8. Avaa projektin paikallinen .env ja muokkaa tiedostosta seuraavat kohdat kuntoon:
    DB_NAME=projektinnimi
    DB_USER=projektinnimi
    DB_PASSWORD=gunship-kannan salasana tähän
    DB_HOST=185.87.110.10
    
    WP_ENV=staging
    WP_HOME=https://projektinnimi.vaiheessa.fi
    WP_SITEURL=https://projektinnimi.vaiheessa.fi/wp
    

    Saltit ja muut mahdolliset ympäristömuuttujat samat kuin lokaalissa.

  9. Poistu palvelimelta komennolla exit. Aja uudestaan komento cap staging deploy.
  10. Mene FileZillaan. Siirrä mediatiedostot kansioon /var/www/projektinnimi/shared/media
  11. Määrittele kertakäyttösalasana muokkaamalla tiedostoa /var/www/projektinnimi/shared/.staging_password. Lisää salasana Trelloon ja 1Passwordiin.

Lopuksi testaa sivustoa projektin virallisessa osoitteessa projektinnimi.vaiheessa.fi ja ilmoita linkki muille, joiden tarvitsee päästä testaamaan.

Tämä Handbook kertoo kuinka me teemme asioita Dudella, mutta saa ottaa koppia myös omaan toimintaan. Emme takaa että kaikki meidän jutut toimivat muilla samalla tavalla. Ole mitä olet! Kaikki on avointa GitHubissa: digitoimistodude/handbook