Browse Source

Remove ansi chars, resolve empty AMI issue, update inventory path

Anuj Bansal 3 years ago
parent
commit
c0e15cb655

+ 10 - 4
devops/infrastructure/deploy-infra.sh

@@ -8,6 +8,10 @@ ACCOUNT_ID=$(aws sts get-caller-identity --profile $CLI_PROFILE --query Account
 
 NEW_STACK_NAME="${STACK_NAME}-${ACCOUNT_ID}"
 
+DATA_PATH="data-$NEW_STACK_NAME"
+
+INVENTORY_PATH="$DATA_PATH/inventory"
+
 if [ $ACCOUNT_ID == None ]; then
     echo "Couldn't find Account ID, please check if AWS Profile $CLI_PROFILE is set"
     exit 1
@@ -54,19 +58,21 @@ if [ $? -eq 0 ]; then
     HOST="admin"
   fi
 
-  echo -e "$ADMIN_INVENTORY[validators]\n$VALIDATORS\n\n[rpc]\n$RPC_NODES" > inventory
+  mkdir -p $DATA_PATH
+
+  echo -e "$ADMIN_INVENTORY[validators]\n$VALIDATORS\n\n[rpc]\n$RPC_NODES" > $INVENTORY_PATH
 
   if [ -z "$EC2_AMI_ID" ]
   then
     echo -e "\n\n=========== Configuring the node servers ==========="
-    ansible-playbook -i inventory --private-key $KEY_PATH build-code.yml --extra-vars "branch_name=$BRANCH_NAME git_repo=$GIT_REPO build_local_code=$BUILD_LOCAL_CODE"
+    ansible-playbook -i $INVENTORY_PATH --private-key $KEY_PATH build-code.yml --extra-vars "branch_name=$BRANCH_NAME git_repo=$GIT_REPO build_local_code=$BUILD_LOCAL_CODE"
   fi
 
   echo -e "\n\n=========== Configuring the Admin server ==========="
-  ansible-playbook -i inventory --private-key $KEY_PATH setup-admin.yml \
+  ansible-playbook -i $INVENTORY_PATH --private-key $KEY_PATH setup-admin.yml \
     --extra-vars "local_dir=$LOCAL_CODE_PATH run_on_admin_server=$CREATE_ADMIN_SERVER build_local_code=$BUILD_LOCAL_CODE"
 
   echo -e "\n\n=========== Configuring the chain spec file ==========="
-  ansible-playbook -i inventory --private-key $KEY_PATH chain-spec-configuration.yml \
+  ansible-playbook -i $INVENTORY_PATH --private-key $KEY_PATH chain-spec-configuration.yml \
     --extra-vars "local_dir=$LOCAL_CODE_PATH network_suffix=$NETWORK_SUFFIX data_path=data-$NEW_STACK_NAME run_on_admin_server=$CREATE_ADMIN_SERVER"
 fi

+ 5 - 1
devops/infrastructure/main.yml

@@ -6,6 +6,9 @@ Parameters:
   EC2AMI:
     Type: String
     Default: 'ami-09e67e426f25ce0d7'
+  DefaultAMI:
+    Type: String
+    Default: 'ami-09e67e426f25ce0d7'
   KeyName:
     Description: Name of an existing EC2 KeyPair to enable SSH access to the instance
     Type: 'AWS::EC2::KeyPair::KeyName'
@@ -21,6 +24,7 @@ Conditions:
   CreateAdminServerCondition: !Equals
     - !Ref CreateAdminServer
     - true
+  HasAMIId: !Not [!Equals [!Ref EC2AMI, ""]]
 
 Resources:
   SecurityGroup:
@@ -75,7 +79,7 @@ Resources:
     Properties:
       LaunchTemplateName: !Sub 'LaunchTemplate_${AWS::StackName}'
       LaunchTemplateData:
-        ImageId: !Ref EC2AMI
+        ImageId: !If [HasAMIId, !Ref EC2AMI, !Ref DefaultAMI]
         InstanceType: !Ref EC2InstanceType
         KeyName: !Ref KeyName
         SecurityGroupIds:

+ 1 - 1
devops/infrastructure/roles/common/tasks/chain-spec-node-keys.yml

@@ -29,7 +29,7 @@
 
 - name: Save output of chain spec to local file
   copy:
-    content: "{{ chain_spec_output.stdout }}"
+    content: '{{ chain_spec_output.stdout | regex_replace("\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[mGK]", "") }}'
     dest: "{{ data_path }}/chain_spec_output.txt"
   delegate_to: "{{ local_or_admin }}"
   run_once: true