Add instructions to run Ansible playbooks on remote machines #5

Merged
nabarun merged 14 commits from deep-stack/testnet-ops:ag-run-remote into main 2024-09-09 13:37:42 +00:00
7 changed files with 64 additions and 140 deletions
Showing only changes of commit 852db93b9e - Show all commits

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
hosts.ini

View File

@ -8,7 +8,7 @@
- Set Locale Encoding to `UTF-8`
Ansible requires the locale encoding to be `UTF-8`. You can either use the `LANG` prefix when running Ansible commands or set the system-wide locale.
Ansible requires the locale encoding to be `UTF-8`. You can either use the `LANG` prefix when running Ansible commands or set the system-wide locale
- Option 1: Use `LANG` Prefix in Commands
@ -32,12 +32,51 @@
LANG="en_US.UTF-8"
```
- Reboot your system or log out and log back in to apply the changes.
- Reboot your system or log out and log back in to apply the changes
- Reference: <https://udhayakumarc.medium.com/error-ansible-requires-the-locale-encoding-to-be-utf-8-detected-iso8859-1-6da808387f7d>
## Setup Remote Hosts
To run the playbook on a remote machine, setup the required ansible inventory:
- Create a new `hosts.ini` file:
```bash
cp example-hosts.ini hosts.ini
```
- Edit the [`hosts.ini`](./hosts.ini) file to run the playbook on a remote machine:
```bash
[<deployment_host>]
<host_name> ansible_host=<target_ip> ansible_user=<ssh_user> ansible_ssh_common_args='-o ForwardAgent=yes'
```
- Replace `<deployment_host>` with the appropriate host group for the deployment
- Replace `<host_name>` with the alias of your choice
- Replace `<target_ip>` with the IP address or hostname of the target machine
- Replace `<ssh_user>` with the SSH username (e.g., dev, ubuntu)
- Verify that you are able to connect to the host using the following command
```bash
ansible all -m ping -i hosts.ini -k
# Expected output:
# <host_name> | SUCCESS => {
# "ansible_facts": {
# "discovered_interpreter_python": "/usr/bin/python3.10"
# },
# "changed": false,
# "ping": "pong"
# }
```
## Playbooks
- [l2-setup](./l2-setup/README.md)
- [nitro-node-setup](./nitro-nodes-setup/README.md)
- [nitro-bridge-setup](./nitro-bridge-setup/README.md)
- [nitro-contracts-setup](./nitro-contracts-setup/)

View File

@ -1,2 +1,2 @@
[nitro_host]
<host_name> ansible_host=<TARGET_IP> ansible_user=<SSH_USER> ansible_ssh_common_args='-o ForwardAgent=yes'
[deployment_host]
<host_name> ansible_host=<target_ip> ansible_user=<ssh_user> ansible_ssh_common_args='-o ForwardAgent=yes'

View File

@ -4,42 +4,13 @@
To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine
## Setup Remote Hosts
## Setup for Remote Host
To run the playbook on a remote machine, follow these steps:
To run the playbook on a remote host:
- In the [`l2-setup`](./) directory, create a new file named hosts.ini:
- Follow steps from [setup remote hosts](../README.md#setup-remote-hosts)
```bash
cp ../example-hosts.ini hosts.ini
```
- Edit the [`hosts.ini`](./hosts.ini) file to run the playbook on a remote machine
```bash
[nitro_host]
<host_name> ansible_host=<TARGET_IP> ansible_user=<SSH_USER> ansible_ssh_common_args='-o ForwardAgent=yes'
```
- Replace `<host_name>` with the alias of your choice.
- Replace `<TARGET_IP>` with the IP address or hostname of the target machine.
- Replace `<SSH_USER>` with the SSH username (e.g., dev, ubuntu).
- Verify that you are able to connect to the host using the following command
```bash
ansible all -m ping -i hosts.ini -k
# Expected output:
# <host_name> | SUCCESS => {
# "ansible_facts": {
# "discovered_interpreter_python": "/usr/bin/python3.10"
# },
# "changed": false,
# "ping": "pong"
# }
```
- Update / append the [`hosts.ini`](../hosts.ini) file for your remote host with `<deployment_host>` set as `l2_host`
## Setup and Run Optimism
@ -85,10 +56,10 @@ The following commands have to be executed in [`l2-setup`](./) directory
LANG=en_US.utf8 ansible-playbook run-optimism.yml --extra-vars='{ "target_host": "localhost"}' -kK --user $USER
```
- For remote deployment, provide an inventory and specify the `"target_host": nitro_host` in the `--extra-vars` parameter:
- For remote deployment, provide an inventory and specify the `"target_host": l2_host` in the `--extra-vars` parameter:
```bash
LANG=en_US.utf8 ansible-playbook -i ./hosts.ini run-optimism.yml --extra-vars='{ "target_host": "nitro_host"}' -kK
LANG=en_US.utf8 ansible-playbook -i ../hosts.ini run-optimism.yml --extra-vars='{ "target_host": "l2_host"}' -kK
```
NOTE: By default, deployments are created in a `out` directory. To change this location, update the `l2_directory` variable in the [setup-vars.yml](./setup-vars.yml) file.
@ -96,7 +67,7 @@ The following commands have to be executed in [`l2-setup`](./) directory
- For skipping container build, set `"skip_container_build" : true` in the `--extra-vars` parameter:
```bash
LANG=en_US.utf8 ansible-playbook -i ./hosts.ini run-optimism.yml --extra-vars='{"target_host" : "nitro_host", "skip_container_build": true}' -kK
LANG=en_US.utf8 ansible-playbook -i ../hosts.ini run-optimism.yml --extra-vars='{"target_host" : "l2_host", "skip_container_build": true}' -kK
```
- To run using existing contracts deployment
@ -106,7 +77,7 @@ The following commands have to be executed in [`l2-setup`](./) directory
- Run the ansible playbook with `"existing_contracts_deployment": true` in the `--extra-vars` parameter:
```bash
LANG=en_US.utf8 ansible-playbook -i ./hosts.ini run-optimism.yml --extra-vars='{"target_host" : "nitro_host", "existing_contracts_deployment": true}' -kK
LANG=en_US.utf8 ansible-playbook -i ../hosts.ini run-optimism.yml --extra-vars='{"target_host" : "l2_host", "existing_contracts_deployment": true}' -kK
```
## Check Deployment Status

View File

@ -4,42 +4,13 @@
To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine
## Setup Remote Hosts
## Setup for Remote Host
To run the playbook on a remote machine, follow these steps:
To run the playbook on a remote host:
- In the [`nitro-bridge-setup`](./) directory, create a new file named hosts.ini:
- Follow steps from [setup remote hosts](../README.md#setup-remote-hosts)
```bash
cp ../example-hosts.ini hosts.ini
```
- Edit the [`hosts.ini`](./hosts.ini) file to run the playbook on a remote machine
```bash
[nitro_host]
<host_name> ansible_host=<TARGET_IP> ansible_user=<SSH_USER> ansible_ssh_common_args='-o ForwardAgent=yes'
```
- Replace `<host_name>` with the alias of your choice.
- Replace `<TARGET_IP>` with the IP address or hostname of the target machine.
- Replace `<SSH_USER>` with the SSH username (e.g., dev, ubuntu).
- Verify that you are able to connect to the host using the following command
```bash
ansible all -m ping -i hosts.ini -k
# Expected output:
# <host_name> | SUCCESS => {
# "ansible_facts": {
# "discovered_interpreter_python": "/usr/bin/python3.10"
# },
# "changed": false,
# "ping": "pong"
# }
```
- Update / append the [`hosts.ini`](../hosts.ini) file for your remote host with `<deployment_host>` set as `nitro_host`
## Run Nitro Bridge

View File

@ -4,42 +4,13 @@
To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine
## Setup Remote Hosts
## Setup for Remote Host
To run the playbook on a remote machine, follow these steps:
To run the playbook on a remote host:
- In the [`nitro-contracts-setup`](./) directory, create a new file named hosts.ini:
- Follow steps from [setup remote hosts](../README.md#setup-remote-hosts)
```bash
cp ../example-hosts.ini hosts.ini
```
- Edit the [`hosts.ini`](./hosts.ini) file to run the playbook on a remote machine
```bash
[nitro_host]
<host_name> ansible_host=<TARGET_IP> ansible_user=<SSH_USER> ansible_ssh_common_args='-o ForwardAgent=yes'
```
- Replace `<host_name>` with the alias of your choice.
- Replace `<TARGET_IP>` with the IP address or hostname of the target machine.
- Replace `<SSH_USER>` with the SSH username (e.g., dev, ubuntu).
- Verify that you are able to connect to the host using the following command
```bash
ansible all -m ping -i hosts.ini -k
# Expected output:
# <host_name> | SUCCESS => {
# "ansible_facts": {
# "discovered_interpreter_python": "/usr/bin/python3.10"
# },
# "changed": false,
# "ping": "pong"
# }
```
- Update / append the [`hosts.ini`](../hosts.ini) file for your remote host with `<deployment_host>` set as `nitro_host`
## Deploy Nitro Contracts

View File

@ -4,42 +4,13 @@
To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine
## Setup Remote Hosts
## Setup for Remote Host
To run the playbook on a remote machine, follow these steps:
To run the playbook on a remote host:
- In the [`nitro-nodes-setup`](./) directory, create a new file named hosts.ini:
- Follow steps from [setup remote hosts](../README.md#setup-remote-hosts)
```bash
cp ../example-hosts.ini hosts.ini
```
- Edit the [`hosts.ini`](./hosts.ini) file to run the playbook on a remote machine
```bash
[nitro_host]
<host_name> ansible_host=<TARGET_IP> ansible_user=<SSH_USER> ansible_ssh_common_args='-o ForwardAgent=yes'
```
- Replace `<host_name>` with the alias of your choice.
- Replace `<TARGET_IP>` with the IP address or hostname of the target machine.
- Replace `<SSH_USER>` with the SSH username (e.g., dev, ubuntu).
- Verify that you are able to connect to the host using the following command
```bash
ansible all -m ping -i hosts.ini -k
# Expected output:
# <host_name> | SUCCESS => {
# "ansible_facts": {
# "discovered_interpreter_python": "/usr/bin/python3.10"
# },
# "changed": false,
# "ping": "pong"
# }
```
- Update / append the [`hosts.ini`](../hosts.ini) file for your remote host with `<deployment_host>` set as `nitro_host`
## Run a nitro node