3) Download & Launch Playbooks
Complete 1) Local Tooling Setup and 2) AWS Initial Setup before proceeding.

Prerequisites

  1. 1.
    Generate private keys for the Master of Ceremony (MoC) and 3 Validator accounts (4 accounts total). Use MetaMask or myetherwallet to generate private keys and save as json keystore file + password. Note the json location, wallet address, and password for each file.
  2. 2.
    Choose and write down a name for the future Network (Genesis Network Name).
  3. 3.
    Choose and write down a secret password for the Netstat Server.
Record and keep this information handy for installation:
  • MoC wallet address
  • MoC wallet password
  • Validator wallet addresses
  • Validator wallet passwords
  • Genesis Network Name
  • Netstat Password
From AWS Setup:
  • AWS user name
  • AWS Access key ID
  • AWS Secret access key
  • AWS keypair_name

Download & Launch (to create AWS instances)

1) Clone repositories with playbooks. https://github.com/poanetwork/deployment-playbooks
1
git clone https://github.com/poanetwork/deployment-playbooks.git
Copied!
2) Switch to aws directory.
1
cd deployment-playbooks/aws
Copied!
3) Create configuration file. Start with the Netstat server
1
cp group_vars/all.yml.example group_vars/all.yml
Copied!
4) Edit all.yml, replacing the following parameters:
1
access_key: your-AWS-access-key
2
secret_key: your-AWS-secret-key
3
4
awskeypair_name: "keypairname"
5
region: "us-east-1"
6
vpc_id: "vpc-ID-number"
7
vpc_subnet_id: "subnet-ID-number"
Copied!
Depending on your resource needs (or for testing purposes) you can save costs by changing all instances of "t2.large" to "t2.small"
5) Launch the netstat playbook
1
ansible-playbook netstat.yml
Copied!
It should complete without errors, and a new instance created in AWS EC2. You will see the new node's IP address in the logs. Write it down (you can also retrieve from AWS later if needed).
If you get the following error, try adding a private-key flag to the command. fatal: [ip.address]: UNREACHABLE! => {"changed": false, "msg": "SSH Error: data could not be sent to remote host \"ip.address\". Make sure this host can be reached over ssh", "unreachable": true}
1
ansible-playbook netstat.yml --private-key=~/.ssh/your-private-key
Copied!
6) Repeat the same process for MoC and Bootnode playbooks.
1
ansible-playbook moc.yml
2
ansible-playbook bootnode.yml
Copied!
7) For validator nodes, change the value of validator_instance_name for each new validator.
1
ansible-playbook validator.yml -e "validator_instance_name=validator-1"
2
ansible-playbook validator.yml -e "validator_instance_name=validator-2"
3
ansible-playbook validator.yml -e "validator_instance_name=validator-3"
Copied!
You should now have 6 nodes running on AWS: 1x for future MoC, 1x netstat, 1x bootnode, 3x validators. Next: Configure Instances.

Last modified 1yr ago