---
# System prepended metadata

title: stepbet-deploy

---

# stepbet-deploy

This repository contains various utilities that allow you to deploy, view logs and connect to Stepbet Game Service Servers.


# Installation
1. Place your SSH keys into `secrets/keys` and edit `config/op-servers.rb` to point to those keys.
2. Add `bin` to you homepath by adding this line to your `.bashrc`. 
```bash
export PATH=~/dev/stepbet-deploy/bin:$PATH
```

#### Note:
File `config/op-servers.rb` need's to be up to date with the latest infrastructure changes. If say change the amount of Front End Game Service servers from 2 to 3, you will have to add it to this config file.


# Utilities

## 1. sbdeploy
Deploys into Game Service and Imageserver

#### Usage
Use the following options to deploy from `develop` all changes since commit `f94aade44ffa69c7a15e26dd8c8616ab87523f64`
```
sbdeploy -a stepbet-dev-appex -c f94aade44ffa69c7a15e26dd8c8616ab87523f64
```

#### Full list of options
```
  -z, --debug            Optional: load pry
  -h, --help             Prints this help
  -a, --app=A            Required, application name, e.g. stepbet-prod-appex
  -c, --commit=C         Required, last commit released before
  -b, --backup           Optional, deploy with backup

```

#### How it works
The script runs the following actions:
1. Fetches stepbet either `develop` or `master` branches from github into a temporary folder `./stepbet-deploy/tmp/repos/stepbet_dev_appex`. Branch is chosen based on config in `config/op-servers.rb`.
2. Optionally diffs all changes since commit SHA (option `-c`).
3. Deletes all files that should are **always edited manually directly on the servers**. These are `data/settings.php` and all the `.htaccess` files.
4. Compresses all `.js` and all `.css` files with `yuicompressor`.
5. Creates a zip and uploads it to directory defined in `config/op-servers.rb`.
6. Unzips the files on the server and deletes the zip.


## 2. sbkonnect
Wrapper around `ssh` that can connect to either one of the Game Service servers or Imageserver

#### Usage
Use the following options to connect to Front End Server #1 for Appex Game Service
```
sbkonnect -s stepbet-prod-appex-1
```
it results in a command

```
ssh -i /home/wbdev/stepbet-deploy/secrets/keys/stepbet-prod-appex.pem centos@ec2-54-234-242-251.compute-1.amazonaws.com -p 22
```

#### Full list of options
```
  -z, --debug          Optional: load pry
  -h, --help           Prints this help
  -s, --server=S       Required, the server instace, e.g. stepbet-prod-appex-1
  -c, --command=C      Optional, command to run
```


## 3. sblogs
Downloads local text file logs from either Game Service or Imageserver

#### Usage
Use the following command to download database errors from both Fron End Servers for Game Service production
```
sblogs -a stepbet-prod-appex -j -f database/db-errors.txt
```
This results in two downloaded files into:

```
stepbet-deploy/logs/stepbet_prod_appex/stepbet_prod_appex_1-db-errors.txt
/stepbet-deploy/logs/stepbet_prod_appex/stepbet_prod_appex_2-db-errors.t
```
and one file that contains content for both joined
```
stepbet-deploy/logs/stepbet_prod_appex/stepbet_prod_appex-db-errors.txt
```

#### Note: 
If you have `gedit` installed locally, you can use option `-o` to automatically open the downloaded files.

#### Full list of options
```
  -z, --debug            Optional: load pry
  -h, --help             Prints this help
  -a, --app=A            Required, application name, e.g. stepbet-prod-appex
  -f, --file=F           Log file to download
  -o, --open             Optional, open the downloaded files on exit
  -j, --join             Optional, join multiple files in one file
```

## 4. sbphplogs
Wrapper around `ssh` that can connect to either one of the Game Service servers or Imageserver and open it's php error log file in `vim`.

#### Usage
Use the following options to see php errors on Fron End Server #1  (and potentially clear them out in `vim`)
```
sbphplogs -s stepbet-prod-appex-1
```
it results in a command

```
'ssh -i /home/wbdev/stepbet-deploy/secrets/keys/stepbet-prod-appex.pem centos@ec2-54-234-242-251.compute-1.amazonaws.com -p 22 -t 'vim "/var/log/php-fpm/www-error.log"''
```

#### Full list of options
```
  -z, --debug            Optional: load pry
  -h, --help             Prints this help
  -s, --server=S         Required, the server instace, e.g. stepbet-prod-appex-1
```
