Automation for setting up and deploying of different node types


#1

I added a Python script to setup and deploy different nodes (bootnode, validator node, Master Of Ceremony (MOC) node)

Also it would be used to update a node and keep it up to date

Please provide your feedback, test if possible, submit requests.

Thank you,
Marat


#2

The main idea is to have command and control setup in AWS (and beyond).

This would be used for anything related to nodes:

  • setup node
  • update node
  • anything else that needs to be done on a regular basis or once in a while

Process is simple:

  1. User logs in to AWS and spins up new Ubuntu VM (this would be main / control VM). It could be vanilla VM without any modifications. (That could also be automated)

  2. From control VM (this would be powered on only when action on nodes is needs to be performed) user starts the script and gets a menu:

What would you like to do?

  1. Setup new node
  2. Update node
  3. Other action
  4. Exit

Then selects action, node type, network type, specifies other information that is needed.

  1. Done :white_check_mark: (everything is done automatically and minimizes user errors and support tickets). Also it assures that everything is in compliance and was setup properly.

Even creating and setting up VMs for nodes would be automated.

After that, Control VM could be powered off. (Or it could monitor all nodes and perform other actions)

Things to consider:

Security. We would need audits for this code and for process, to make sure that all nodes are secure after running this script.

I believe for mass adoption that would be very beneficial. Users for example could easily spinup new bootnode. If there is a HF, they would power on control VM, start the script and update node.


#3

Great - this is a good step forward in terms of management simplicity. Would this also work for Ubuntu VMs hosted in Azure? That’s where I’m running Sokol bootnode and validator node right now.


#4

It should… Would be good if you could test it. I tested it in AWS and adding more code now. It shouldn’t matter as long as you have SSH keys for remote server

Later, when I add managing VMs (Creating new instances, powering then on and off, etc then it should be different for Azure), but this part is not critical now.

For now you can ignore menu file. You just need to upload two files:

I will add more info on how to use it in the wiki


#5

I’m currently using my local Win10 WSL for control node, but I suppose having it in the cloud has its benefits too. Good work!


#6

It won’t work on Windows for now… Thanks for feedback!


#7

WSL is a full Ubuntu image, not Windows. If it works on Ubuntu VM in Azure, it should also work inside WSL


#8

Then it should work.