fix a number of bugs
This commit is contained in:
parent
5290e2c5f2
commit
d1a4ea6e9f
|
@ -0,0 +1,2 @@
|
||||||
|
[defaults]
|
||||||
|
force_handlers = True
|
|
@ -1,3 +1,12 @@
|
||||||
|
- name: Save config file
|
||||||
|
hosts: localhost
|
||||||
|
roles:
|
||||||
|
- { role: s3, when: "backend|bool == true" }
|
||||||
|
environment:
|
||||||
|
AWS_ACCESS_KEY_ID: "{{ aws_access_key }}"
|
||||||
|
AWS_SECRET_ACCESS_KEY: "{{ aws_secret_key }}"
|
||||||
|
AWS_REGION: "{{ region }}"
|
||||||
|
|
||||||
- name: Deploy BlockScout
|
- name: Deploy BlockScout
|
||||||
hosts: localhost
|
hosts: localhost
|
||||||
tasks:
|
tasks:
|
||||||
|
@ -8,7 +17,3 @@
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: chain
|
loop_var: chain
|
||||||
index_var: index
|
index_var: index
|
||||||
environment:
|
|
||||||
AWS_ACCESS_KEY_ID: "{{ aws_access_key }}"
|
|
||||||
AWS_SECRET_ACCESS_KEY: "{{ aws_secret_key }}"
|
|
||||||
AWS_REGION: "{{ region }}"
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
resource "aws_ssm_parameter" "elixir_version" {
|
resource "aws_ssm_parameter" "elixir_version" {
|
||||||
count = "${var.new_relic_license_key == "" ? 0 : length(var.chains)}"
|
count = "${length(var.chains)}"
|
||||||
name = "/${var.prefix}/${element(keys(var.chains),count.index)}/elixir_version"
|
name = "/${var.prefix}/${element(keys(var.chains),count.index)}/elixir_version"
|
||||||
value = "${var.elixir_version}"
|
value = "${var.elixir_version}"
|
||||||
type = "String"
|
type = "String"
|
||||||
|
|
|
@ -14,6 +14,7 @@ function log() {
|
||||||
}
|
}
|
||||||
|
|
||||||
parameters_json="{}"
|
parameters_json="{}"
|
||||||
|
|
||||||
function fetch_ssm_with_token() {
|
function fetch_ssm_with_token() {
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
log "(fetch_ssm_with_token) Calling ssm without token"
|
log "(fetch_ssm_with_token) Calling ssm without token"
|
||||||
|
@ -39,7 +40,7 @@ function fetch_ssm_with_token() {
|
||||||
|
|
||||||
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -P /tmp
|
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -P /tmp
|
||||||
|
|
||||||
yum install -y /tmp/epel-release-latest-7.noarch.rpm
|
yum localinstall -y /tmp/epel-release-latest-7.noarch.rpm
|
||||||
|
|
||||||
yum update -y
|
yum update -y
|
||||||
|
|
||||||
|
@ -132,18 +133,10 @@ EOF
|
||||||
log "Installing Erlang.."
|
log "Installing Erlang.."
|
||||||
|
|
||||||
wget http://packages.erlang-solutions.com/site/esl/esl-erlang/FLAVOUR_1_general/esl-erlang_21.1-1~centos~7_amd64.rpm
|
wget http://packages.erlang-solutions.com/site/esl/esl-erlang/FLAVOUR_1_general/esl-erlang_21.1-1~centos~7_amd64.rpm
|
||||||
yum install -y wxGTK-devel unixODBC-devel >"$LOG"
|
yum localinstall -y wxGTK-devel unixODBC-devel >"$LOG"
|
||||||
yum install -y esl-erlang_21.1-1~centos~7_amd64.rpm >"$LOG"
|
yum localinstall -y esl-erlang_21.1-1~centos~7_amd64.rpm >"$LOG"
|
||||||
|
|
||||||
ELIXIR_VERSION="$(get_param 'elixir_version')"
|
|
||||||
log "Installing Elixir to /opt/elixir.."
|
|
||||||
mkdir -p /opt/elixir
|
|
||||||
wget https://github.com/elixir-lang/elixir/releases/download/${ELIXIR_VERSION}/Precompiled.zip >"$LOG"
|
|
||||||
unzip Precompiled.zip -d /opt/elixir >"$LOG"
|
|
||||||
log "Elixir installed successfully!"
|
|
||||||
|
|
||||||
log "Fetching configuration from Parameter Store..."
|
log "Fetching configuration from Parameter Store..."
|
||||||
#parameters_json=$(aws ssm get-parameters-by-path --region "$REGION" --path "/$PREFIX/$CHAIN")
|
|
||||||
fetch_ssm_with_token
|
fetch_ssm_with_token
|
||||||
params=$(echo "$parameters_json" | jq '.Parameters[].Name' --raw-output)
|
params=$(echo "$parameters_json" | jq '.Parameters[].Name' --raw-output)
|
||||||
log "$(printf 'Found the following parameters:\n\n%s\n' "$params")"
|
log "$(printf 'Found the following parameters:\n\n%s\n' "$params")"
|
||||||
|
@ -154,6 +147,13 @@ function get_param() {
|
||||||
--raw-output
|
--raw-output
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ELIXIR_VERSION="$(get_param 'elixir_version')"
|
||||||
|
log "Installing Elixir to /opt/elixir.."
|
||||||
|
mkdir -p /opt/elixir
|
||||||
|
wget https://github.com/elixir-lang/elixir/releases/download/${ELIXIR_VERSION}/Precompiled.zip >"$LOG"
|
||||||
|
unzip Precompiled.zip -d /opt/elixir >"$LOG"
|
||||||
|
log "Elixir installed successfully!"
|
||||||
|
|
||||||
DB_USER="$(get_param 'db_username')"
|
DB_USER="$(get_param 'db_username')"
|
||||||
DB_PASS="$(get_param 'db_password')"
|
DB_PASS="$(get_param 'db_password')"
|
||||||
DB_HOST="$(get_param 'db_host')"
|
DB_HOST="$(get_param 'db_host')"
|
||||||
|
|
|
@ -6,6 +6,12 @@
|
||||||
force: true
|
force: true
|
||||||
when: skip_fetch | bool != true
|
when: skip_fetch | bool != true
|
||||||
|
|
||||||
|
- name: Git clean
|
||||||
|
command: "git clean -fdx"
|
||||||
|
args:
|
||||||
|
chdir: "blockscout-{{ chain }}"
|
||||||
|
when: skip_fetch | bool != true
|
||||||
|
|
||||||
- name: Merge branches
|
- name: Merge branches
|
||||||
command: "git merge {{ chain_merge_commit[chain] }}"
|
command: "git merge {{ chain_merge_commit[chain] }}"
|
||||||
args:
|
args:
|
||||||
|
@ -31,12 +37,25 @@
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Compile BlockScout
|
- name: Compile BlockScout
|
||||||
command: mix do deps.get, local.rebar --force, deps.compile, compile, ecto.drop, ecto.create, ecto.migrate
|
command: "mix do {{ item }}"
|
||||||
args:
|
args:
|
||||||
chdir: "blockscout-{{ chain }}"
|
chdir: "blockscout-{{ chain }}"
|
||||||
|
with_items:
|
||||||
|
- deps.get
|
||||||
|
- local.rebar --force
|
||||||
|
- deps.compile
|
||||||
|
- compile
|
||||||
|
- ecto.drop
|
||||||
|
- ecto.create
|
||||||
|
- ecto.migrate
|
||||||
|
|
||||||
- name: Install Node modules at apps/block_scout_web/assets
|
- name: Install Node modules at apps/block_scout_web/assets
|
||||||
command: npm install && node_modules/webpack/bin/webpack.js --mode production
|
command: npm install
|
||||||
|
args:
|
||||||
|
chdir: "blockscout-{{ chain }}/apps/block_scout_web/assets"
|
||||||
|
|
||||||
|
- name: Execute webpack.js at apps/block_scout_web/assets/node_modules/webpack/bin
|
||||||
|
command: node_modules/webpack/bin/webpack.js --mode production
|
||||||
args:
|
args:
|
||||||
chdir: "blockscout-{{ chain }}/apps/block_scout_web/assets"
|
chdir: "blockscout-{{ chain }}/apps/block_scout_web/assets"
|
||||||
|
|
||||||
|
@ -51,30 +70,33 @@
|
||||||
chdir: "blockscout-{{ chain }}/apps/block_scout_web"
|
chdir: "blockscout-{{ chain }}/apps/block_scout_web"
|
||||||
|
|
||||||
- name: Start server
|
- name: Start server
|
||||||
command: mix phx.server &
|
block:
|
||||||
environment:
|
- name: Start server
|
||||||
- BLOCKSCOUT_VERSION: "{{ chain_blockscout_version[chain].value }}"
|
command: "mix phx.server"
|
||||||
- COIN: "{{ chain_coin[chain].value }}"
|
environment: "{{ chain_env }}"
|
||||||
- ETHEREUM_JSONRPC_HTTP_URL: "{{ chains[chain].value }}"
|
ignore_errors: true
|
||||||
- ETHEREUM_JSONRPC_TRACE_URL: "{{ chain_trace_endpoint[chain].value }}"
|
args:
|
||||||
- ETHEREUM_JSONRPC_WS_URL: "{{ chain_ws_endpoint[chain].value }}"
|
chdir: "blockscout-{{ chain }}"
|
||||||
- ETHEREUM_JSONRPC_VARIANT: "{{ chain_jsonrpc_variant[chain].value }}"
|
vars:
|
||||||
- HEART_BEAT_TIMEOUT: "{{ chain_heart_beat_timeout[chain].value }}"
|
chain_env: "{{ chain_custom_environment_chain | combine({'BLOCKSCOUT_VERSION': chain_blockscout_version[chain], 'COIN': chain_coin[chain], 'ETHEREUM_JSONRPC_HTTP_URL': chains[chain], 'ETHEREUM_JSONRPC_TRACE_URL': chain_trace_endpoint[chain], 'ETHEREUM_JSONRPC_WS_URL': chain_ws_endpoint[chain], 'ETHEREUM_JSONRPC_VARIANT': chain_jsonrpc_variant[chain], 'HEART_BEAT_TIMEOUT': chain_heart_beat_timeout[chain], 'HEART_COMMAND': chain_heart_command[chain], 'LOGO': chain_logo[chain], 'NETWORK': chain_network[chain], 'SUBNETWORK': chain_subnetwork[chain], 'NETWORK_ICON': chain_network_icon[chain]}) }}"
|
||||||
- HEART_COMMAND: "{{ chain_heart_command[chain].value }}"
|
chain_custom_environment_chain: "{{ chain_cec[chain] | default({}) }}"
|
||||||
- LOGO: "{{ chain_logo[chain].value }}"
|
chain_cec: "{{ chain_custom_environment | default ({}) }}"
|
||||||
- NETWORK: "{{ chain_network[chain].value }}"
|
async: 10000
|
||||||
- SUBNETWORK: "{{ chain_subnetwork[chain].value }}"
|
poll: 0
|
||||||
- NETWORK_ICON: "{{ chain_network_icon[chain].value }}"
|
- name: User prompt
|
||||||
- "{{ chain_custom_environment_chain }}"
|
pause:
|
||||||
args:
|
prompt: "Please, open your browser and open 4000 port at the machine were Ansible is currently run. BlockScout should appear. Ensure that there is no visual artifacts and then press Enter to continue. Press Ctrl+C and then A if you face any issues to cancel the deployment."
|
||||||
chdir: "blockscout-{{ chain }}"
|
rescue:
|
||||||
vars:
|
- name: 'Stop execution'
|
||||||
chain_custom_environment_chain: "{{ chain_cec[chain] | default('') }}"
|
fail:
|
||||||
chain_cec: "{{ chain_custom_environment | default('') }}"
|
msg: "Execution aborted."
|
||||||
|
always:
|
||||||
- name: User prompt
|
- name: kill server
|
||||||
pause:
|
command: "pkill -e {{ item }}"
|
||||||
prompt: "Please, open your browser and open 4000 port at the machine were Ansible is currently run. BlockScout should appear. Ensure that there is no visual artifacts and then press Enter to continue. Press Ctrl+C if you face any issues to cancel the deployment."
|
with_items:
|
||||||
|
- beam.smp
|
||||||
|
- node
|
||||||
|
failed_when: false
|
||||||
|
|
||||||
- name: Build static assets
|
- name: Build static assets
|
||||||
command: mix phx.digest
|
command: mix phx.digest
|
||||||
|
@ -86,15 +108,19 @@
|
||||||
state: absent
|
state: absent
|
||||||
path: "{{ item }}"
|
path: "{{ item }}"
|
||||||
with_items:
|
with_items:
|
||||||
- "blockscout-{{ chain }}/build/"
|
- "blockscout-{{ chain }}/_build/"
|
||||||
- "blockscout-{{ chain }}/deps/"
|
- "blockscout-{{ chain }}/deps/"
|
||||||
- "blockscout-{{ chain }}/apps/block_scout_web/assets/node_modules/"
|
- "blockscout-{{ chain }}/apps/block_scout_web/assets/node_modules/"
|
||||||
- "blockscout-{{ chain }}/apps/explorer/node_modules/"
|
- "blockscout-{{ chain }}/apps/explorer/node_modules/"
|
||||||
- "blockscout-{{ chain }}/logs/dev/"
|
- "blockscout-{{ chain }}/logs/dev/"
|
||||||
|
|
||||||
- name: Upload Blockscout to S3
|
- name: Upload Blockscout to S3
|
||||||
command: "aws deploy push --application-name={{ application_name }} --s3-location {{ s3_connection_string }} --source=blockscout-{{ chain }}"
|
command: "aws deploy push --application-name={{ prefix }}-explorer --s3-location s3://{{ prefix }}-explorer-codedeploy-releases/blockscout-{{ chain }}.zip --source=blockscout-{{ chain }}"
|
||||||
register: push_output
|
register: push_output
|
||||||
|
environment:
|
||||||
|
AWS_ACCESS_KEY_ID: "{{ aws_access_key }}"
|
||||||
|
AWS_SECRET_ACCESS_KEY: "{{ aws_secret_key }}"
|
||||||
|
AWS_REGION: "{{ region }}"
|
||||||
|
|
||||||
- name: User prompt
|
- name: User prompt
|
||||||
pause:
|
pause:
|
||||||
|
@ -107,9 +133,7 @@
|
||||||
value: "{{ item.value }}"
|
value: "{{ item.value }}"
|
||||||
with_items:
|
with_items:
|
||||||
- { name: elixir_version, value: "{{ elixir_version }}" }
|
- { name: elixir_version, value: "{{ elixir_version }}" }
|
||||||
- { name: block_transformet, value: "{{ chain_block_transformer[chain] }}" }
|
- { name: block_transformer, value: "{{ chain_block_transformer[chain] }}" }
|
||||||
- { name: new_relic_app_name, value: "{{ chain_new_relic_app_name[chain] }}" }
|
|
||||||
- { name: new_relic_license_key, value: "{{ chain_new_relic_license_key[chain] }}" }
|
|
||||||
- { name: pool_size, value: "{{ pool_size }}" }
|
- { name: pool_size, value: "{{ pool_size }}" }
|
||||||
- { name: ecto_use_ssl, value: "{{ use_ssl }}" }
|
- { name: ecto_use_ssl, value: "{{ use_ssl }}" }
|
||||||
- { name: ethereum_jsonrpc_variant, value: "{{ chain_jsonrpc_variant[chain] }}" }
|
- { name: ethereum_jsonrpc_variant, value: "{{ chain_jsonrpc_variant[chain] }}" }
|
||||||
|
@ -123,19 +147,23 @@
|
||||||
- { name: network_path, value: "{{ chain_network_path[chain] }}" }
|
- { name: network_path, value: "{{ chain_network_path[chain] }}" }
|
||||||
- { name: network_icon, value: "{{ chain_network_icon[chain] }}" }
|
- { name: network_icon, value: "{{ chain_network_icon[chain] }}" }
|
||||||
- { name: graphiql_transaction, value: "{{ chain_graphiql_transaction[chain] }}" }
|
- { name: graphiql_transaction, value: "{{ chain_graphiql_transaction[chain] }}" }
|
||||||
- { name: exq_blocks_concurrency, value: 1 }
|
|
||||||
- { name: exq_concurrency, value: 1 }
|
|
||||||
- { name: exq_internal_transactions_concurrency, value: 1 }
|
|
||||||
- { name: exq_receipts_concurrency, value: 1 }
|
|
||||||
- { name: exq_transactions_concurrency, value: 1 }
|
|
||||||
- { name: secret_key_base, value: "{{ secret_key_base }}" }
|
- { name: secret_key_base, value: "{{ secret_key_base }}" }
|
||||||
- { name: alb_ssl_policy, value: "{{ alb_ssl_policy }}" }
|
- { name: alb_ssl_policy, value: "{{ alb_ssl_policy }}" }
|
||||||
- { name: alb_certificate_arn, value: "{{ alb_certificate_arn }}" }
|
- { name: alb_certificate_arn, value: "{{ alb_certificate_arn }}" }
|
||||||
- { name: heart_beat_timeout, value: "{{ chain_heart_beat_timeout[chain] }}" }
|
- { name: heart_beat_timeout, value: "{{ chain_heart_beat_timeout[chain] }}" }
|
||||||
- { name: heart_command, value: "{{ chain_heart_command[chain] }}" }
|
- { name: heart_command, value: "{{ chain_heart_command[chain] }}" }
|
||||||
- { name: blockscout_version, value: "{{ chain_blockscout_version[chain] }}" }
|
- { name: blockscout_version, value: "{{ chain_blockscout_version[chain] }}" }
|
||||||
# DB info will not be refreshed
|
environment:
|
||||||
|
AWS_ACCESS_KEY_ID: "{{ aws_access_key }}"
|
||||||
|
AWS_SECRET_ACCESS_KEY: "{{ aws_secret_key }}"
|
||||||
|
AWS_REGION: "{{ region }}"
|
||||||
|
when: user_answer.user_input|bool == true
|
||||||
|
# DB and New Relic info will not be refreshed
|
||||||
|
|
||||||
- name: Deploy Blockscout
|
- name: Deploy Blockscout
|
||||||
command: "{{ push_output.stdout | regex_replace('^--deployment-group-name <deployment-group-name> --deployment-config-name <deployment-config-name> --description <description>$', '') }} --deployment-group-name {{ prefix }}-explorer-dg{{ index }} --deployment-config-name CodeDeployDefault.OneAtATime --description '{{ chain_blockscout_version[chain] }}'"
|
command: "{{ push_output.stdout_lines[1] }} --deployment-group-name {{ prefix }}-explorer-dg{{ index }} --deployment-config-name CodeDeployDefault.OneAtATime --description '{{ chain_blockscout_version[chain] }}'"
|
||||||
when: user_answer.user_input|bool == true
|
when: user_answer.user_input|bool == true
|
||||||
|
environment:
|
||||||
|
AWS_ACCESS_KEY_ID: "{{ aws_access_key }}"
|
||||||
|
AWS_SECRET_ACCESS_KEY: "{{ aws_secret_key }}"
|
||||||
|
AWS_REGION: "{{ region }}"
|
||||||
|
|
Loading…
Reference in New Issue