- Opinionated deployment design
- Extendable to all hyperlane deployments, including the ones from the team and from the community
- Forma
- Injective
- Neutron
- Osmosis
- Sei
- Stride
- Zetachain
First, copy the sample inventory file to your own inventory file so you can customize it to suit your needs:
cp inventory.sample inventory.ini
The script assumes the following:
- You already have the hyperlane validator compiled in the
target/release
folder and you want to use a different instance of the binary for each deployment. - Each deployment will be contained in a separate folder. For example,
osmosis
is deployed into a.osmosis
folder - Each deployment has an
agent-config.json
file with public info about the hyperlane deployment that does not vary per validator - Each deployment has an
.env
file with private info for each validator. Some assumptions are made. For example,HYP_VALIDATOR_ID=alias/hyperlane-validator
andHYP_CHECKPOINTSYNCER_BUCKET=hyperlane-validator-{{ validator_brand }}-{{ chain }}
. These values are related to your setup outside of this Ansible script. We assume those values because we believe they are the best practices. - Each deployment will use a different metrics port (based on a port prefix) so multiple hyperlane instances can reside on the same server
- Finally, this script assumes that you do not want Ansible to handle sensitive info such as the signer wallet private key. As a result, you will need to manually set those in the
.env
file after the Ansible deployment.
Overall, this script is rather straightforward because much of the complexity has been assumed away.
Once you have customized the inventory file, you run one playbook to set up a hyperlane deployment, plus manual interventions to finish off the private sensitive info directly on the server.
ansible-playbook hyperlane.yml -e "target=osmosis"