Difference between revisions of "Deploy JRMs on local EJFAT nodes"

From epsciwiki
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 33: Line 33:
 
=== 4. Prepare SSH Access, kubeconfig, and Docker ===
 
=== 4. Prepare SSH Access, kubeconfig, and Docker ===
 
* Ensure you have SSH access to the EJFAT nodes you intend to initialize.
 
* Ensure you have SSH access to the EJFAT nodes you intend to initialize.
* Copy ~/.kube/config on localhost to EJFAT:~/.kube/config.
 
 
* Verify that Docker is installed and running on each EJFAT node. The script requires Docker to pull and run necessary images.
 
* Verify that Docker is installed and running on each EJFAT node. The script requires Docker to pull and run necessary images.
  
=== 5. Run the Launch Script ===
+
=== 5. Copy kubeconfig file to EJFAT nodes ===
 +
Copy the kubeconfig file to the EJFAT nodes:
 +
 
 +
For example, to copy to ejfat-2:
 +
<syntaxhighlight lang="bash">
 +
scp ~/.kube/config ejfat-2:/home/jlabtsai/.kube/config
 +
</syntaxhighlight>
 +
 
 +
=== 6. Run the Launch Script ===
 
Execute the <code>launch-nodes.sh</code> script:
 
Execute the <code>launch-nodes.sh</code> script:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Line 42: Line 49:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== 6. Script Execution Process ===
+
==== Script Execution Process ====
 
For each selected node, the script will:
 
For each selected node, the script will:
 
* Set up an SSH tunnel for port forwarding.
 
* Set up an SSH tunnel for port forwarding.
Line 48: Line 55:
 
* Execute <code>node-setup.sh</code> on the node with appropriate parameters.
 
* Execute <code>node-setup.sh</code> on the node with appropriate parameters.
  
=== 7. Wait for Completion ===
+
==== Wait for Completion ====
 
The script will wait for all node setup processes to complete.
 
The script will wait for all node setup processes to complete.
  

Latest revision as of 18:23, 17 September 2024

EJFAT Node Initialization

This directory contains scripts for initializing JRMs on EJFAT nodes.

Key Files

  1. node-setup.sh: Sets up individual EJFAT nodes.
  2. launch-nodes.sh: Launches EJFAT nodes.

Step-by-Step Usage

EJFAT Node Initialization Flow Chart

1. Download the Repository

Clone the GitHub repository to your local machine:

git clone https://github.com/JeffersonLab/jiriaf-test-platform.git
cd jiriaf-test-platform/main/local-ejfat/init-jrm

2. Set API Server Port

Check your Kubernetes configuration file at ~/.kube/config to find the correct API server port. Update the APISERVER_PORT in launch-nodes.sh to match this port.

3. Customize Node Selection

By default, the script initializes only ejfat-2. To change this:

  • Open launch-nodes.sh in a text editor.
  • Locate the line: for i in $(seq 2 2)
  • Modify the numbers to select different nodes. For example:
    • $(seq 1 3) initializes nodes 1, 2, and 3.
    • $(seq 5 7) initializes nodes 5, 6, and 7.

4. Prepare SSH Access, kubeconfig, and Docker

  • Ensure you have SSH access to the EJFAT nodes you intend to initialize.
  • Verify that Docker is installed and running on each EJFAT node. The script requires Docker to pull and run necessary images.

5. Copy kubeconfig file to EJFAT nodes

Copy the kubeconfig file to the EJFAT nodes:

For example, to copy to ejfat-2:

scp ~/.kube/config ejfat-2:/home/jlabtsai/.kube/config

6. Run the Launch Script

Execute the launch-nodes.sh script:

./launch-nodes.sh

Script Execution Process

For each selected node, the script will:

  • Set up an SSH tunnel for port forwarding.
  • Copy node-setup.sh to the target node.
  • Execute node-setup.sh on the node with appropriate parameters.

Wait for Completion

The script will wait for all node setup processes to complete.

Special Cases

Node 7 is treated as a special case and renamed to "fs". If you're including node 7, be aware of this naming convention in the script.

Troubleshooting

If you encounter issues:

  1. Verify SSH connectivity to the target nodes.
  2. Check if the API server port is available on both local and remote machines.
  3. Ensure node-setup.sh is present in the same directory as launch-nodes.sh.

For more detailed information, refer to the comments in launch-nodes.sh and node-setup.sh.