Skip to content

Instantly share code, notes, and snippets.

@fraktalize
Created June 8, 2020 19:14
Show Gist options
  • Save fraktalize/1c676ecaceb6f770c0b051740f005c88 to your computer and use it in GitHub Desktop.
Save fraktalize/1c676ecaceb6f770c0b051740f005c88 to your computer and use it in GitHub Desktop.
Deployscript for intializing file structure for shared CI hosting
mkdir -p {staging,production}/deploys
mkdir -p shared/{staging,production,uploads}
wget https://raw.githubusercontent.com/roots/bedrock/master/.env.example -O shared/staging/.env
wget https://raw.githubusercontent.com/roots/bedrock/master/.env.example -O shared/production/.env
@fraktalize
Copy link
Author

Oderland CI

CI-script for Oderland!

Steg 1: cPanel-fix.

Börja med att skapa en SSH-nyckel via ssh-keygen. Döp den till t.ex. id_rsa_projektnamn och skippa lösenordet.

Logga in på CPanel. Scrolla ner till SSH Access och klicka där. Gå vidare till "Manage Keys" och tryck på "Import Key". Döp nyckeln till id_rsa_projektnamn. Kopiera in privata nyckeln - du kan plocka ut den privata nyckeln med följande kommando: cat ~/.ssh/id_rsa_projektnamn | pbcopy. Gör samma med den publika nyckeln: cat ~/.ssh/id_rsa_projektnamn.pub | pbcopy. Spara nyckeln, och navigera tillbaka till översikten för SSH-nycklar. Du behöver auktorisera nyckeln nu - gör det via "Manage" längst till höger vid "Public Keys".

Nu kan du ansluta till SSH med hjälp av nyckeln! För enklare SSH-access, lägg till det i ~/.ssh/config:

Host projektnamn
HostName oderlandHostname
User oderlandUser
IdentityFile ~/.ssh/id_rsa_projektnamn

Så kan du ansluta såhär enkelt: ssh projektnamn

I Oderland så behöver det även läggas till ett addon-domain.
Förslagsvis under en undermapp så som katthus. Detta görs under Addon Domains i CPanel på Oderland.

Exempel:

New Domain Name: stage.katthus.com
Subdomain: stage
Document Root: katthus/staging/public_html

Få upp databas. I Cpanel: MySQL database wizard

Notera databasnamn, användarnamn och lösenord.

Ge alla privilegier till användaren

Steg 2: Fixa hosten

SSHa in på hosten.

Kör bashscriptet från repot

Redigera shared/{environment}/.env för både staging och production

Steg 3: CI i gitlab

Settings -> CI

Variables (protected inte masked):

  • STAGING_REMOTE_USER (användarnamn på staging)
  • STAGING_REMOTE_HOST (hostname för staging)
  • STAGING_DEPLOY_KEY (Privat SSH-nyckel för staging)
  • STAGING_SERVER_KEY (ssh-keyscan mot hostname för staging)

Lägg till CI-scriptet (.gitlab-ci.yml) och ändra variablerna i filen! Börja pusha! :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment