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
5 changed files with 111 additions and 34 deletions
Showing only changes of commit dc6145f37d - Show all commits

View File

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

View File

@ -6,7 +6,7 @@ To get started, follow the [installation](../README.md#installation) guide to se
## Setup Remote Hosts ## Setup Remote Hosts
To run the playbooks on a remote machine, follow these steps: To run the playbook on a remote machine, follow these steps:
- In the [`l2-setup`](./) directory, create a new file named hosts.ini: - In the [`l2-setup`](./) directory, create a new file named hosts.ini:
@ -18,17 +18,27 @@ To run the playbooks on a remote machine, follow these steps:
```bash ```bash
[nitro_host] [nitro_host]
hostname ansible_host= ansible_user= ansible_ssh_common_args='-o ForwardAgent=yes' <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 `<host_name>` with the alias of your choice.
- Replace `<TARGET_IP>` with the IP address or hostname of the target machine. - Replace `<TARGET_IP>` with the IP address or hostname of the target machine.
- Replace `<SSH_USER>` with the SSH username (e.g., dev, ubuntu). - 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 - Verify that you are able to connect to the host using the following command
```bash ```bash
ansible all -m ping -i hosts.ini 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"
# }
``` ```
## Setup and Run Optimism ## Setup and Run Optimism

View File

@ -6,7 +6,7 @@ To get started, follow the [installation](../README.md#installation) guide to se
## Setup Remote Hosts ## Setup Remote Hosts
To run the playbooks on a remote machine, follow these steps: To run the playbook on a remote machine, follow these steps:
- In the [`nitro-bridge-setup`](./) directory, create a new file named hosts.ini: - In the [`nitro-bridge-setup`](./) directory, create a new file named hosts.ini:
@ -18,18 +18,29 @@ To run the playbooks on a remote machine, follow these steps:
```bash ```bash
[nitro_host] [nitro_host]
hostname ansible_host= ansible_user= ansible_ssh_common_args='-o ForwardAgent=yes' <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 `<host_name>` with the alias of your choice.
- Replace `<TARGET_IP>` with the IP address or hostname of the target machine. - Replace `<TARGET_IP>` with the IP address or hostname of the target machine.
- Replace `<SSH_USER>` with the SSH username (e.g., dev, ubuntu). - 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 - Verify that you are able to connect to the host using the following command
```bash ```bash
ansible all -m ping -i hosts.ini 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"
# }
``` ```
## Run Nitro Bridge ## Run Nitro Bridge
- Copy the `bridge-vars-example.yml` vars file - Copy the `bridge-vars-example.yml` vars file
@ -75,7 +86,7 @@ To run the playbooks on a remote machine, follow these steps:
l1_asset_address: "" l1_asset_address: ""
``` ```
- To run the nitro bridge, execute the `run-nitro-bridge.yml` Ansible playbook by running the following command: - To run the nitro bridge, execute the `run-nitro-bridge.yml` Ansible playbook by running one of the following commands:
- For local deployment, specify the `"target_host": localhost` in the `--extra-vars` parameter: - For local deployment, specify the `"target_host": localhost` in the `--extra-vars` parameter:

View File

@ -4,6 +4,43 @@
To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine
## Setup Remote Hosts
To run the playbook on a remote machine, follow these steps:
- In the [`nitro-contracts-setup`](./) directory, create a new file named hosts.ini:
```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"
# }
```
## Deploy Nitro Contracts ## Deploy Nitro Contracts
The following commands have to be executed in [`nitro-contracts-setup`](./) directory The following commands have to be executed in [`nitro-contracts-setup`](./) directory
@ -32,18 +69,27 @@ The following commands have to be executed in [`nitro-contracts-setup`](./) dire
intial_token_supply: "129600" intial_token_supply: "129600"
``` ```
- To deploy the L1 nitro contracts, execute the `deploy-contracts.yml` Ansible playbook by running the following command: - To deploy the L1 nitro contracts, execute the `deploy-contracts.yml` Ansible playbook by running one of the following commands:
NOTE: By default, deployments are created in the `nitro-nodes-setup/out` directory. To change this location, update the `nitro_directory` variable in the [setup-vars.yml](./setup-vars.yml) file. - For local deployment, specify the `"target_host": localhost` in the `--extra-vars` parameter:
```bash ```bash
LANG=en_US.utf8 ansible-playbook -i localhost, --connection=local deploy-contracts.yml --extra-vars='{ "target_host": "localhost"}' --user $USER -kK LANG=en_US.utf8 ansible-playbook deploy-contracts.yml --extra-vars='{ "target_host": "localhost"}' --user $USER -kK
``` ```
- For remote deployment, provide an inventory and specify the `"target_host": nitro_host` in the `--extra-vars` parameter:
```bash
LANG=en_US.utf8 ansible-playbook -i ./hosts.ini deploy-contracts.yml --extra-vars='{ "target_host": "nitro_host"}' --user $USER -kK
```
NOTE: By default, deployments are created in the `nitro-contracts-setup/out` directory. To change this location, update the `nitro_directory` variable in the [setup-vars.yml](./setup-vars.yml) file.
- For skipping container build, run with `"skip_container_build" : true` in the `--extra-vars` parameter: - For skipping container build, run with `"skip_container_build" : true` in the `--extra-vars` parameter:
```bash ```bash
LANG=en_US.utf8 ansible-playbook -i localhost, --connection=local deploy-contracts.yml --extra-vars='{ "target_host": "localhost", "skip_container_build": true }' --user $USER -kK LANG=en_US.utf8 ansible-playbook -i ./hosts.ini deploy-contracts.yml --extra-vars='{ "target_host": "localhost", "skip_container_build": true }' --user $USER -kK
``` ```
## Check Deployment Status ## Check Deployment Status

View File

@ -6,30 +6,40 @@ To get started, follow the [installation](../README.md#installation) guide to se
## Setup Remote Hosts ## Setup Remote Hosts
- To run the playbooks on a remote machine, follow these steps: To run the playbook on a remote machine, follow these steps:
- In the [`nitro-nodes-setup`](./) directory, create a new file named hosts.ini: - In the [`nitro-nodes-setup`](./) directory, create a new file named hosts.ini:
```bash ```bash
cp ../example-hosts.ini hosts.ini cp ../example-hosts.ini hosts.ini
``` ```
- Edit the [`hosts.ini`](./hosts.ini) file to run the playbook on a remote machine - Edit the [`hosts.ini`](./hosts.ini) file to run the playbook on a remote machine
```bash ```bash
[nitro_host] [nitro_host]
hostname ansible_host= ansible_user= ansible_ssh_common_args='-o ForwardAgent=yes' <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 `<host_name>` with the alias of your choice.
- Replace `<TARGET_IP>` with the IP address or hostname of the target machine. - Replace `<TARGET_IP>` with the IP address or hostname of the target machine.
- Replace `<SSH_USER>` with the SSH username (e.g., dev, ubuntu). - 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 - Verify that you are able to connect to the host using the following command
```bash ```bash
ansible all -m ping -i hosts.ini 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"
# }
```
## Run a nitro node ## Run a nitro node
@ -83,7 +93,7 @@ The following commands have to be executed in [`nitro-nodes-setup`](./) director
nitro_l2_ext_multiaddr: "" nitro_l2_ext_multiaddr: ""
``` ```
- To run a nitro node, execute the `run-nitro-nodes.yml` Ansible playbook by running the following command. - To run a nitro node, execute the `run-nitro-nodes.yml` Ansible playbook by running one of the following commands:
- For local deployment, specify the `"target_host": localhost` in the `--extra-vars` parameter: - For local deployment, specify the `"target_host": localhost` in the `--extra-vars` parameter: