|
| 1 | +# LoL Optimizer deployment |
| 2 | + |
| 3 | +## Requirements |
| 4 | + |
| 5 | +- Active Oracle Cloud Account |
| 6 | +- Credits available |
| 7 | +- Administrative permissions |
| 8 | + |
| 9 | +## Download |
| 10 | + |
| 11 | +Open OCI Console, and click Cloud Shell. |
| 12 | + |
| 13 | +``` |
| 14 | +git clone --branch livelabs https://github.com/jasperan/f1-telemetry-oracle.git |
| 15 | +``` |
| 16 | + |
| 17 | +Change to `f1-telemetry-oracle` directory: |
| 18 | +``` |
| 19 | +cd f1-telemetry-oracle/ |
| 20 | +``` |
| 21 | + |
| 22 | +## Set up |
| 23 | + |
| 24 | +From this directory `./dev`. |
| 25 | +``` |
| 26 | +cd dev/ |
| 27 | +``` |
| 28 | + |
| 29 | +``` |
| 30 | +cp terraform/terraform.tfvars.template terraform/terraform.tfvars |
| 31 | +``` |
| 32 | + |
| 33 | +Get details for the `terraform.tfvars` file: |
| 34 | +- Tenancy: |
| 35 | + ``` |
| 36 | + echo $OCI_TENANCY |
| 37 | + ``` |
| 38 | +- Compartment (root by default): |
| 39 | + ``` |
| 40 | + echo $OCI_TENANCY |
| 41 | + ``` |
| 42 | + > If you need a specific compartment, get the OCID by name with: |
| 43 | + > ``` |
| 44 | + > oci iam compartment list --all --compartment-id-in-subtree true --name COMPARTMENT_NAME --query "data[].id" |
| 45 | + > ``` |
| 46 | +- SSH Public Key: |
| 47 | + ``` |
| 48 | + cat ~/.ssh/id_rsa.pub |
| 49 | + ``` |
| 50 | +
|
| 51 | +Refresh the Riot Developer API key, only valid for 24 hours. |
| 52 | +
|
| 53 | +Edit the values with `vim` or `nano` with your tenancy, compartment, ssh public key and Riot API key: |
| 54 | +``` |
| 55 | +vim terraform/terraform.tfvars |
| 56 | +``` |
| 57 | +
|
| 58 | +## Deploy |
| 59 | +
|
| 60 | +``` |
| 61 | +./start.sh |
| 62 | +``` |
| 63 | +
|
| 64 | +> If there are permission errors with **start.sh**, make sure to change permissions appropriately before trying to execute again: |
| 65 | + ``` |
| 66 | + chmod 700 start.sh |
| 67 | + ``` |
| 68 | +
|
| 69 | +
|
| 70 | +The output will be an `ssh` command to connect with the machine. |
| 71 | +
|
| 72 | +> Re-run the `start.sh` in case of failure |
| 73 | +
|
| 74 | +## Test |
| 75 | +
|
| 76 | +After ssh into the machine, run the check app. |
| 77 | +
|
| 78 | +``` |
| 79 | +python3 src/check.py |
| 80 | +``` |
| 81 | +
|
| 82 | +All checks should indicate `OK`. If any `FAIL`, review the setup and make sure `terraform.tfvars` are valid. |
| 83 | +
|
| 84 | +### Destroy |
| 85 | +
|
| 86 | +``` |
| 87 | +./stop.sh |
| 88 | +``` |
| 89 | +
|
| 90 | +
|
| 91 | +## AJSON export/import |
| 92 | +
|
| 93 | +Create Bucket. |
| 94 | +
|
| 95 | +``` |
| 96 | +BEGIN |
| 97 | + DBMS_CLOUD.CREATE_CREDENTIAL( |
| 98 | + credential_name => 'LOL_BUCKET_CREDENTIALS', |
| 99 | + username => 'user1@example.com', |
| 100 | + password => 'password' |
| 101 | + ); |
| 102 | +END; |
| 103 | +/ |
| 104 | +``` |
| 105 | +
|
| 106 | +Match: |
| 107 | +``` |
| 108 | +BEGIN |
| 109 | + DBMS_CLOUD.EXPORT_DATA( |
| 110 | + credential_name => 'LOL_BUCKET_CREDENTIALS', |
| 111 | + file_uri_list => 'https://objectstorage.eu-frankfurt-1.oraclecloud.com/n/namespace-string/b/lolbackup/o/match_export', |
| 112 | + query => 'SELECT * FROM match', |
| 113 | + format => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip')); |
| 114 | +END; |
| 115 | +/ |
| 116 | +``` |
| 117 | +
|
| 118 | +Match Detail: |
| 119 | +``` |
| 120 | +BEGIN |
| 121 | + DBMS_CLOUD.EXPORT_DATA( |
| 122 | + credential_name => 'LOL_BUCKET_CREDENTIALS', |
| 123 | + file_uri_list => 'https://objectstorage.eu-frankfurt-1.oraclecloud.com/n/namespace-string/b/lolbackup/o/match_detail_export', |
| 124 | + query => 'SELECT * FROM match_detail', |
| 125 | + format => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip')); |
| 126 | +END; |
| 127 | +/ |
| 128 | +``` |
| 129 | +
|
| 130 | +Summoner: |
| 131 | +``` |
| 132 | +BEGIN |
| 133 | + DBMS_CLOUD.EXPORT_DATA( |
| 134 | + credential_name => 'LOL_BUCKET_CREDENTIALS', |
| 135 | + file_uri_list => 'https://objectstorage.eu-frankfurt-1.oraclecloud.com/n/namespace-string/b/lolbackup/o/summoner_export', |
| 136 | + query => 'SELECT * FROM summoner', |
| 137 | + format => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip')); |
| 138 | +END; |
| 139 | +/ |
| 140 | +``` |
| 141 | +
|
| 142 | +Predictor Live Client: |
| 143 | +``` |
| 144 | +BEGIN |
| 145 | + DBMS_CLOUD.EXPORT_DATA( |
| 146 | + credential_name => 'LOL_BUCKET_CREDENTIALS', |
| 147 | + file_uri_list => 'https://objectstorage.eu-frankfurt-1.oraclecloud.com/n/namespace-string/b/lolbackup/o/predictor_liveclient_export', |
| 148 | + query => 'SELECT * FROM predictor_liveclient', |
| 149 | + format => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip')); |
| 150 | +END; |
| 151 | +/ |
| 152 | +``` |
| 153 | +
|
| 154 | +> Update Credentials? |
| 155 | +> ``` |
| 156 | +> BEGIN |
| 157 | +> DBMS_CLOUD.UPDATE_CREDENTIAL( |
| 158 | +> credential_name => 'LOL_BUCKET_CREDENTIALS', |
| 159 | +> attribute => 'PASSWORD', |
| 160 | +> value => 'password'); |
| 161 | +> END; |
| 162 | +> / |
| 163 | +> ``` |
0 commit comments