Update ansible commands to not prompt for password

This commit is contained in:
Adw8 2024-10-23 10:55:15 +05:30
parent 26632f88d7
commit d8c9f14608
7 changed files with 71 additions and 60 deletions

View File

@ -36,18 +36,19 @@
- Reference: <https://udhayakumarc.medium.com/error-ansible-requires-the-locale-encoding-to-be-utf-8-detected-iso8859-1-6da808387f7d> - Reference: <https://udhayakumarc.medium.com/error-ansible-requires-the-locale-encoding-to-be-utf-8-detected-iso8859-1-6da808387f7d>
- Verify ansible installation by running the following command:
```bash
ansible --version
# ansible [core 2.17.2]
```
- Install `sshpass` used for automating SSH password authentication - Install `sshpass` used for automating SSH password authentication
```bash ```bash
sudo apt-get install sshpass sudo apt-get install sshpass
``` ```
- Install `passlib` used for handling encrypted passwords
```bash
pip install passlib
```
## Playbooks ## Playbooks
- [stack-orchestrator-setup](./stack-orchestrator-setup/README.md) - [stack-orchestrator-setup](./stack-orchestrator-setup/README.md)

View File

@ -4,7 +4,7 @@
- Setup Ansible: To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine. - Setup Ansible: To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine.
- Setup user: Follow steps from [Setup a user](../user-setup/README.md#setup-a-user) to setup a new user with passwordless sudo - Setup user with passwordless sudo: Follow steps from [Setup a user](../user-setup/README.md#setup-a-user) to setup a new user
## Setup ## Setup
@ -44,9 +44,9 @@ The following commands have to be executed in the [`nitro-bridge-setup`](./) dir
- Create a new `hosts.ini` file: - Create a new `hosts.ini` file:
```bash ```bash
cp ../hosts.example.ini hosts.ini cp ../hosts.example.ini hosts.ini
``` ```
- Edit the [`hosts.ini`](./hosts.ini) file: - Edit the [`hosts.ini`](./hosts.ini) file:
@ -58,12 +58,12 @@ The following commands have to be executed in the [`nitro-bridge-setup`](./) dir
- Replace `<deployment_host>` with `nitro_host` - Replace `<deployment_host>` with `nitro_host`
- 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 username of the user that you set up on target machine (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 -k ansible all -m ping -i hosts.ini
# Expected output: # Expected output:
@ -79,7 +79,7 @@ The following commands have to be executed in the [`nitro-bridge-setup`](./) dir
- Execute the `run-nitro-bridge.yml` Ansible playbook for deploying nitro bridge: - Execute the `run-nitro-bridge.yml` Ansible playbook for deploying nitro bridge:
```bash ```bash
LANG=en_US.utf8 ansible-playbook -i hosts.ini run-nitro-bridge.yml --extra-vars='{ "target_host": "nitro_host"}' --user $USER -kK LANG=en_US.utf8 ansible-playbook -i hosts.ini run-nitro-bridge.yml --extra-vars='{ "target_host": "nitro_host"}' --user $USER
``` ```
NOTE: By default, deployments are created in an `out` directory. To change this location, update the `nitro_directory` variable in the [setup-vars.yml](./setup-vars.yml) file NOTE: By default, deployments are created in an `out` directory. To change this location, update the `nitro_directory` variable in the [setup-vars.yml](./setup-vars.yml) file
@ -87,16 +87,16 @@ The following commands have to be executed in the [`nitro-bridge-setup`](./) dir
- 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 hosts.ini run-nitro-bridge.yml --extra-vars='{ "target_host": "nitro_host", "skip_container_build": true }' --user $USER -kK LANG=en_US.utf8 ansible-playbook -i hosts.ini run-nitro-bridge.yml --extra-vars='{ "target_host": "nitro_host", "skip_container_build": true }' --user $USER
``` ```
## Check Deployment Status ## Check Deployment Status
- Run the following command in the directory where the bridge-deployment is created: Run the following command in the directory where the bridge-deployment is created:
- Check logs for deployments: - Check logs for deployments:
```bash ```bash
# Check the bridge deployment logs, ensure that the node is running # Check the bridge deployment logs, ensure that the node is running
laconic-so deployment --dir bridge-deployment logs nitro-bridge -f laconic-so deployment --dir bridge-deployment logs nitro-bridge -f
``` ```

View File

@ -4,7 +4,7 @@
- Setup Ansible: To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine. - Setup Ansible: To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine.
- Setup user: Follow steps from [Setup a user](../user-setup/README.md#setup-a-user) to setup a new user with passwordless sudo - Setup user with passwordless sudo: Follow steps from [Setup a user](../user-setup/README.md#setup-a-user) to setup a new user with passwordless sudo
## Setup ## Setup
@ -52,12 +52,12 @@ The following commands have to be executed in the [`nitro-contracts-setup`](./)
- Replace `<deployment_host>` with `nitro_host` - Replace `<deployment_host>` with `nitro_host`
- 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 username of the user that you set up on target machine (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 -k ansible all -m ping -i hosts.ini
# Expected output: # Expected output:
@ -73,7 +73,7 @@ The following commands have to be executed in the [`nitro-contracts-setup`](./)
- Execute the `deploy-contracts.yml` Ansible playbook to deploy nitro contracts: - Execute the `deploy-contracts.yml` Ansible playbook to deploy nitro contracts:
```bash ```bash
LANG=en_US.utf8 ansible-playbook -i hosts.ini deploy-contracts.yml --extra-vars='{ "target_host": "nitro_host"}' --user $USER -kK LANG=en_US.utf8 ansible-playbook -i hosts.ini deploy-contracts.yml --extra-vars='{ "target_host": "nitro_host"}' --user $USER
``` ```
NOTE: By default, deployments are created in an `out` directory. To change this location, update the `nitro_directory` variable in the [setup-vars.yml](./setup-vars.yml) file NOTE: By default, deployments are created in an `out` directory. To change this location, update the `nitro_directory` variable in the [setup-vars.yml](./setup-vars.yml) file
@ -81,26 +81,26 @@ The following commands have to be executed in the [`nitro-contracts-setup`](./)
- 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 hosts.ini deploy-contracts.yml --extra-vars='{ "target_host": "nitro_host", "skip_container_build": true }' --user $USER -kK LANG=en_US.utf8 ansible-playbook -i hosts.ini deploy-contracts.yml --extra-vars='{ "target_host": "nitro_host", "skip_container_build": true }' --user $USER
``` ```
## Check Deployment Status ## Check Deployment Status
- Run the following command in the directory where the nitro-contracts-deployment is created: Run the following command in the directory where the nitro-contracts-deployment is created:
- Check logs for deployments: - Check logs for deployments:
```bash ```bash
# Check the L2 nitro contract deployment logs # Check the L2 nitro contract deployment logs
laconic-so deployment --dir nitro-contracts-deployment logs l2-nitro-contracts -f laconic-so deployment --dir nitro-contracts-deployment logs l2-nitro-contracts -f
``` ```
## Get Contract Addresses ## Get Contract Addresses
- Run the following commands in the directory where the deployments are created: Run the following commands in the directory where the deployments are created:
- Get addresses of L1 nitro contracts: - Get addresses of L1 nitro contracts:
```bash ```bash
laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "cat /app/deployment/nitro-addresses.json" laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "cat /app/deployment/nitro-addresses.json"
``` ```

View File

@ -4,7 +4,7 @@
- Setup Ansible: To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine. - Setup Ansible: To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine.
- Setup user: Follow steps from [Setup a user](../user-setup/README.md#setup-a-user) to setup a new user with passwordless sudo - Setup user with passwordless sudo: Follow steps from [Setup a user](../user-setup/README.md#setup-a-user) to setup a new user with passwordless sudo
## Setup ## Setup
@ -70,12 +70,12 @@ The following commands have to be executed in [`nitro-nodes-setup`](./) director
- Replace `<deployment_host>` with `nitro_host` - Replace `<deployment_host>` with `nitro_host`
- 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 username of the user that you set up on target machine (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 -k ansible all -m ping -i hosts.ini
# Expected output: # Expected output:
@ -93,7 +93,7 @@ The following commands have to be executed in [`nitro-nodes-setup`](./) director
- Execute the `run-nitro-nodes.yml` Ansible playbook to deploy nitro nodes: - Execute the `run-nitro-nodes.yml` Ansible playbook to deploy nitro nodes:
```bash ```bash
LANG=en_US.utf8 ansible-playbook -i hosts.ini run-nitro-nodes.yml --extra-vars='{ "target_host": "nitro_host"}' --user $USER -kK LANG=en_US.utf8 ansible-playbook -i hosts.ini run-nitro-nodes.yml --extra-vars='{ "target_host": "nitro_host"}' --user $USER
``` ```
NOTE: By default, deployments are created in a `out` directory. To change this location, update the `nitro_directory` variable in the [setup-vars.yml](./setup-vars.yml) file NOTE: By default, deployments are created in a `out` directory. To change this location, update the `nitro_directory` variable in the [setup-vars.yml](./setup-vars.yml) file
@ -101,22 +101,21 @@ The following commands have to be executed in [`nitro-nodes-setup`](./) director
- 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 hosts.ini run-nitro-nodes.yml --extra-vars='{ "target_host": "nitro_host", "skip_container_build": true }' --user $USER -kK LANG=en_US.utf8 ansible-playbook -i hosts.ini run-nitro-nodes.yml --extra-vars='{ "target_host": "nitro_host", "skip_container_build": true }' --user $USER
``` ```
## Check Deployment Status ## Check Deployment Status
- Run the following command in the directory where the deployments are created Run the following command in the directory where the deployments are created
- Check L1 nitro node logs: - Check L1 nitro node logs:
```bash ```bash
laconic-so deployment --dir l1-nitro-deployment logs nitro-node -f laconic-so deployment --dir l1-nitro-deployment logs nitro-node -f
``` ```
- Check L2 nitro node logs: - Check L2 nitro node logs:
```bash ```bash
laconic-so deployment --dir l2-nitro-deployment logs nitro-node -f laconic-so deployment --dir l2-nitro-deployment logs nitro-node -f
``` ```

View File

@ -62,7 +62,7 @@
memory_limit: "8G" # maximum amount of memory in GB to be used, eg: 8G memory_limit: "8G" # maximum amount of memory in GB to be used, eg: 8G
deployer_gpg_passphrase: "" # passphrase for creating GPG key used by webapp-deployer, eg: SECRET deployer_gpg_passphrase: "" # passphrase for creating GPG key used by webapp-deployer, eg: SECRET
handle_auction_requests: "true" # whether the webapp deployer should handle deployment auction requests, eg: true handle_auction_requests: "true" # whether the webapp deployer should handle deployment auction requests, eg: true
auction_bid_amount: "100000" # bid amount for deployment auctions in alnt, eg: 500000 auction_bid_amount: "100000" # bid amount for deployment auctions in alnt, eg: 100000
``` ```
- Create a new `hosts.ini` file: - Create a new `hosts.ini` file:
@ -121,7 +121,7 @@ After the playbook finishes executing, the following services will be deployed (
## Cleanup ## Cleanup
Follow the steps given below to stop the webapp-deployer, container-registry, fixturenet-laconicd and laconic-console-deployment, undeploy k8s, remove GPG keys and DNS records Run the following steps on the target machine to stop the webapp-deployer, container-registry, fixturenet-laconicd and laconic-console-deployment, undeploy k8s, remove GPG keys and DNS records
- Stop deployments - Stop deployments
``` ```
@ -196,4 +196,4 @@ Follow the steps given below to stop the webapp-deployer, container-registry, fi
``` ```
- Remove DNS records using DigitalOcean's API: - Remove DNS records using DigitalOcean's API:
- <https://docs.digitalocean.com/reference/api/api-try-it-now/#/Domain%20Records/domains_delete_record> - <https://docs.digitalocean.com/reference/api/api-try-it-now/#/Domain%20Records/domains_delete_record>

View File

@ -4,7 +4,7 @@
- Setup Ansible: To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine. - Setup Ansible: To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine.
- Setup user: Follow steps from [Setup a user](../user-setup/README.md#setup-a-user) to setup a new user with passwordless sudo - Setup user with passwordless sudo: Follow steps from [Setup a user](../user-setup/README.md#setup-a-user) to setup a new user with passwordless sudo
## Setup Stack Orchestrator ## Setup Stack Orchestrator
@ -27,12 +27,12 @@ Run the following commands in the [`stack-orchestrator-setup`](./) directory.
- 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 username of the user that you set up on target machine (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 -k ansible all -m ping -i hosts.ini
# Expected output: # Expected output:
@ -48,19 +48,21 @@ Run the following commands in the [`stack-orchestrator-setup`](./) directory.
- Execute the `setup-laconic-so.yml` Ansible playbook for setting up stack orchestrator and docker on the target machine: - Execute the `setup-laconic-so.yml` Ansible playbook for setting up stack orchestrator and docker on the target machine:
```bash ```bash
LANG=en_US.utf8 ansible-playbook setup-laconic-so.yml -i hosts.ini --extra-vars='{ "target_host": "deployment_host"}' --user $USER -kK LANG=en_US.utf8 ansible-playbook setup-laconic-so.yml -i hosts.ini --extra-vars='{ "target_host": "deployment_host"}' --user $USER
``` ```
## Verify Installation ## Verify Installation
- After the installation is complete, verify if `$HOME/bin` is already included in your PATH by running: Run the following commands on your target machine:
- After the installation is complete, verify if `$HOME/bin` is already included in the `PATH` by running:
```bash ```bash
echo $PATH | grep -q "$HOME/bin" && echo "$HOME/bin is already in PATH" || echo "$HOME/bin is not in PATH" echo $PATH | grep -q "$HOME/bin" && echo "$HOME/bin is already in PATH" || echo "$HOME/bin is not in PATH"
``` ```
If the command outputs `"$HOME/bin is not in PATH"`, you'll need to add it to your `PATH`. If the command outputs `"$HOME/bin is not in PATH"`, you'll need to add it to your `PATH`.
- To add `$HOME/bin` to your PATH, run the following command: - To add `$HOME/bin` to your `PATH`, run the following command:
```bash ```bash
export PATH="$HOME/bin:$PATH" export PATH="$HOME/bin:$PATH"

View File

@ -1,14 +1,23 @@
# user-setup # user-setup
## Setup Ansible ## Prerequisites
To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine. - Setup Ansible: follow the [installation](../README.md#installation) guide to setup ansible on your machine.
- Setup a remote machine with passwordless SSH login for the root user
- Install `passlib` used for handling encrypted passwords when setting up a user
```bash
pip install passlib
```
## Setup a user ## Setup a user
- Create a new `hosts.ini` file: - Create a new `hosts.ini` file:
```bash ```bash
cd user-setup/
cp ../hosts.example.ini hosts.ini cp ../hosts.example.ini hosts.ini
``` ```