From 4dfc9c23d9ed2250c3a90cc55b3e7d1646f2f79f Mon Sep 17 00:00:00 2001 From: nollenr Date: Mon, 12 Sep 2022 09:46:46 -0700 Subject: [PATCH] Added CRDBNODE# so that it is possible to ssh to the CRDB Cluster number for the node (see the README.md for more info). --- README.md | 20 +++++++ crdb_cloudformation_template.yaml | 91 +++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) diff --git a/README.md b/README.md index de45307..88ac632 100644 --- a/README.md +++ b/README.md @@ -352,6 +352,26 @@ Nodes 4, 5, and 6 have the IP Addresses for nodes 1-6.
Nodes 7, 8, and 9 have the IP Addresses for nodes 1-9. +This node number corresponds to the LINUX node number you would find in the EC2 console. This is not the node number of the Cockroach Cluster Node (see below). + +## SSH To a CRDB Node Number +A `cockroach node status` lists all of the nodes participating in the cluster and produces output that looks like the following: + +| id | address | sql_address | build | started_at | updated_at | locality | is_available | is_live| +|-----|---------------------|---------------------|---------|----------------------------|----------------------------|----------------------------------|--------------|----------| +| 1 | 192.168.2.132:26257 | 192.168.2.132:26257 | v22.1.6 | 2022-09-09 16:46:43.361479 | 2022-09-12 16:39:26.894466 | region=us-west-2,zone=us-west-2c | true | true| +| 2 | 192.168.2.4:26257 | 192.168.2.4:26257 | v22.1.6 | 2022-09-09 16:46:45.226062 | 2022-09-12 16:39:24.260465 | region=us-west-2,zone=us-west-2a | true | true| +| 3 | 192.168.2.68:26257 | 192.168.2.68:26257 | v22.1.6 | 2022-09-09 16:46:45.360192 | 2022-09-12 16:39:24.372785 | region=us-west-2,zone=us-west-2b | true | true| + +You can ssh to any of the nodes by using `CRDBNODE` and the node number. For example, to ssh to node id '3', you can do the following: + +``` +ssh $CRDBNODE3 +``` + +Note that the LINUX node number and the CRDB node number are different. The LINUX node number is the node in the order it was created. The CRDB Node number is the number assigned by CRDB when the node joins the cluster. + + # Additional Bash Functions ## STARTCRDB If you shutdown the nodes running the CockroachDB cluster, you can easily restart the database by issuing the ```STARTCRDB``` command on all nodes in the cluster. diff --git a/crdb_cloudformation_template.yaml b/crdb_cloudformation_template.yaml index 6ca5ae6..c8a2c68 100644 --- a/crdb_cloudformation_template.yaml +++ b/crdb_cloudformation_template.yaml @@ -57,6 +57,7 @@ Parameters: Default: "22.1.6" Description: Cockroach Version to install AllowedValues: + - "22.2.0-alpha.2" - "22.1.6" - "22.1.5" - "22.1.4" @@ -797,6 +798,16 @@ Resources: echo " if [[ "$CRDBNODE" = 3 ]]; then echo "Sleeping while other cluster nodes start" && sleep 30 && echo "Initializing Cockroach Database" && cockroach init; fi" >> /home/ec2-user/.bashrc echo " if [[ "$CRDBNODE" = 3 ]]; then sleep 15; cockroach node status; fi" >> /home/ec2-user/.bashrc echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS() {" >> /home/ec2-user/.bashrc + echo " cockroach node status | awk -F ':' 'FNR > 1 { print \$1 }' | awk '{ print \$1, \$2 }' | while read line; do" >> /home/ec2-user/.bashrc + echo " node_number=\`echo \$line | awk '{ print \$1 }'\`" >> /home/ec2-user/.bashrc + echo " variable_name=CRDBNODE\$node_number" >> /home/ec2-user/.bashrc + echo " ip=\`echo \$line | awk '{ print \$2 }'\`" >> /home/ec2-user/.bashrc + echo " echo export \$variable_name=\$ip >> crdb_node_list" >> /home/ec2-user/.bashrc + echo " done" >> /home/ec2-user/.bashrc + echo " source ./crdb_node_list" >> /home/ec2-user/.bashrc + echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS" >> /home/ec2-user/.bashrc sleep 20; su ec2-user -lc 'CREATENODECERT; CREATEROOTCERT; STARTCRDB' if [[ '${RunInit}' = 'YES' && "$CRDBNODE" = 3 ]]; then echo "Initializing Cockroach Database" && su ec2-user -lc 'cockroach init'; fi if [[ '${Installpsql}' = 'YES' ]]; then echo "Installing postgresql13"; amazon-linux-extras install postgresql13; fi @@ -936,6 +947,16 @@ Resources: echo " if [[ "$CRDBNODE" = 3 ]]; then echo "Sleeping while other cluster nodes start" && sleep 30 && echo "Initializing Cockroach Database" && cockroach init; fi" >> /home/ec2-user/.bashrc echo " if [[ "$CRDBNODE" = 3 ]]; then sleep 15; cockroach node status; fi" >> /home/ec2-user/.bashrc echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS() {" >> /home/ec2-user/.bashrc + echo " cockroach node status | awk -F ':' 'FNR > 1 { print \$1 }' | awk '{ print \$1, \$2 }' | while read line; do" >> /home/ec2-user/.bashrc + echo " node_number=\`echo \$line | awk '{ print \$1 }'\`" >> /home/ec2-user/.bashrc + echo " variable_name=CRDBNODE\$node_number" >> /home/ec2-user/.bashrc + echo " ip=\`echo \$line | awk '{ print \$2 }'\`" >> /home/ec2-user/.bashrc + echo " echo export \$variable_name=\$ip >> crdb_node_list" >> /home/ec2-user/.bashrc + echo " done" >> /home/ec2-user/.bashrc + echo " source ./crdb_node_list" >> /home/ec2-user/.bashrc + echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS" >> /home/ec2-user/.bashrc sleep 20; su ec2-user -lc 'CREATENODECERT; CREATEROOTCERT; STARTCRDB' if [[ '${RunInit}' = 'YES' && "$CRDBNODE" = 3 ]]; then echo "Initializing Cockroach Database" && su ec2-user -lc 'cockroach init'; fi if [[ '${Installpsql}' = 'YES' ]]; then echo "Installing postgresql13"; amazon-linux-extras install postgresql13; fi @@ -1092,6 +1113,16 @@ Resources: echo " if [[ "$CRDBNODE" = 3 ]]; then echo "Sleeping while other cluster nodes start" && sleep 30 && echo "Initializing Cockroach Database" && cockroach init; fi" >> /home/ec2-user/.bashrc echo " if [[ "$CRDBNODE" = 3 ]]; then sleep 15; cockroach node status; fi" >> /home/ec2-user/.bashrc echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS() {" >> /home/ec2-user/.bashrc + echo " cockroach node status | awk -F ':' 'FNR > 1 { print \$1 }' | awk '{ print \$1, \$2 }' | while read line; do" >> /home/ec2-user/.bashrc + echo " node_number=\`echo \$line | awk '{ print \$1 }'\`" >> /home/ec2-user/.bashrc + echo " variable_name=CRDBNODE\$node_number" >> /home/ec2-user/.bashrc + echo " ip=\`echo \$line | awk '{ print \$2 }'\`" >> /home/ec2-user/.bashrc + echo " echo export \$variable_name=\$ip >> crdb_node_list" >> /home/ec2-user/.bashrc + echo " done" >> /home/ec2-user/.bashrc + echo " source ./crdb_node_list" >> /home/ec2-user/.bashrc + echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS" >> /home/ec2-user/.bashrc sleep 20; su ec2-user -lc 'CREATENODECERT; CREATEROOTCERT; STARTCRDB' if [[ '${RunInit}' = 'YES' && "$CRDBNODE" = 3 ]]; then echo "Initializing Cockroach Database" && su ec2-user -lc 'cockroach init'; fi if [[ '${Installpsql}' = 'YES' ]]; then echo "Installing postgresql13"; amazon-linux-extras install postgresql13; fi @@ -1235,6 +1266,16 @@ Resources: echo " if [[ "$CRDBNODE" = 3 ]]; then echo "Sleeping while other cluster nodes start" && sleep 30 && echo "Initializing Cockroach Database" && cockroach init; fi" >> /home/ec2-user/.bashrc echo " if [[ "$CRDBNODE" = 3 ]]; then sleep 15; cockroach node status; fi" >> /home/ec2-user/.bashrc echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS() {" >> /home/ec2-user/.bashrc + echo " cockroach node status | awk -F ':' 'FNR > 1 { print \$1 }' | awk '{ print \$1, \$2 }' | while read line; do" >> /home/ec2-user/.bashrc + echo " node_number=\`echo \$line | awk '{ print \$1 }'\`" >> /home/ec2-user/.bashrc + echo " variable_name=CRDBNODE\$node_number" >> /home/ec2-user/.bashrc + echo " ip=\`echo \$line | awk '{ print \$2 }'\`" >> /home/ec2-user/.bashrc + echo " echo export \$variable_name=\$ip >> crdb_node_list" >> /home/ec2-user/.bashrc + echo " done" >> /home/ec2-user/.bashrc + echo " source ./crdb_node_list" >> /home/ec2-user/.bashrc + echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS" >> /home/ec2-user/.bashrc sleep 20; su ec2-user -lc 'CREATENODECERT; CREATEROOTCERT; STARTCRDB' if [[ '${RunInit}' = 'YES' && "$CRDBNODE" = 3 ]]; then echo "Initializing Cockroach Database" && su ec2-user -lc 'cockroach init'; fi if [[ '${Installpsql}' = 'YES' ]]; then echo "Installing postgresql13"; amazon-linux-extras install postgresql13; fi @@ -1381,6 +1422,16 @@ Resources: echo " if [[ "$CRDBNODE" = 3 ]]; then echo "Sleeping while other cluster nodes start" && sleep 30 && echo "Initializing Cockroach Database" && cockroach init; fi" >> /home/ec2-user/.bashrc echo " if [[ "$CRDBNODE" = 3 ]]; then sleep 15; cockroach node status; fi" >> /home/ec2-user/.bashrc echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS() {" >> /home/ec2-user/.bashrc + echo " cockroach node status | awk -F ':' 'FNR > 1 { print \$1 }' | awk '{ print \$1, \$2 }' | while read line; do" >> /home/ec2-user/.bashrc + echo " node_number=\`echo \$line | awk '{ print \$1 }'\`" >> /home/ec2-user/.bashrc + echo " variable_name=CRDBNODE\$node_number" >> /home/ec2-user/.bashrc + echo " ip=\`echo \$line | awk '{ print \$2 }'\`" >> /home/ec2-user/.bashrc + echo " echo export \$variable_name=\$ip >> crdb_node_list" >> /home/ec2-user/.bashrc + echo " done" >> /home/ec2-user/.bashrc + echo " source ./crdb_node_list" >> /home/ec2-user/.bashrc + echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS" >> /home/ec2-user/.bashrc sleep 20; su ec2-user -lc 'CREATENODECERT; CREATEROOTCERT; STARTCRDB' if [[ '${RunInit}' = 'YES' && "$CRDBNODE" = 3 ]]; then echo "Initializing Cockroach Database" && su ec2-user -lc 'cockroach init'; fi if [[ '${Installpsql}' = 'YES' ]]; then echo "Installing postgresql13"; amazon-linux-extras install postgresql13; fi @@ -1527,6 +1578,16 @@ Resources: echo " if [[ "$CRDBNODE" = 3 ]]; then echo "Sleeping while other cluster nodes start" && sleep 30 && echo "Initializing Cockroach Database" && cockroach init; fi" >> /home/ec2-user/.bashrc echo " if [[ "$CRDBNODE" = 3 ]]; then sleep 15; cockroach node status; fi" >> /home/ec2-user/.bashrc echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS() {" >> /home/ec2-user/.bashrc + echo " cockroach node status | awk -F ':' 'FNR > 1 { print \$1 }' | awk '{ print \$1, \$2 }' | while read line; do" >> /home/ec2-user/.bashrc + echo " node_number=\`echo \$line | awk '{ print \$1 }'\`" >> /home/ec2-user/.bashrc + echo " variable_name=CRDBNODE\$node_number" >> /home/ec2-user/.bashrc + echo " ip=\`echo \$line | awk '{ print \$2 }'\`" >> /home/ec2-user/.bashrc + echo " echo export \$variable_name=\$ip >> crdb_node_list" >> /home/ec2-user/.bashrc + echo " done" >> /home/ec2-user/.bashrc + echo " source ./crdb_node_list" >> /home/ec2-user/.bashrc + echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS" >> /home/ec2-user/.bashrc sleep 20; su ec2-user -lc 'CREATENODECERT; CREATEROOTCERT; STARTCRDB' if [[ '${RunInit}' = 'YES' && "$CRDBNODE" = 3 ]]; then echo "Initializing Cockroach Database" && su ec2-user -lc 'cockroach init'; fi if [[ '${Installpsql}' = 'YES' ]]; then echo "Installing postgresql13"; amazon-linux-extras install postgresql13; fi @@ -1676,6 +1737,16 @@ Resources: echo " if [[ "$CRDBNODE" = 3 ]]; then echo "Sleeping while other cluster nodes start" && sleep 30 && echo "Initializing Cockroach Database" && cockroach init; fi" >> /home/ec2-user/.bashrc echo " if [[ "$CRDBNODE" = 3 ]]; then sleep 15; cockroach node status; fi" >> /home/ec2-user/.bashrc echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS() {" >> /home/ec2-user/.bashrc + echo " cockroach node status | awk -F ':' 'FNR > 1 { print \$1 }' | awk '{ print \$1, \$2 }' | while read line; do" >> /home/ec2-user/.bashrc + echo " node_number=\`echo \$line | awk '{ print \$1 }'\`" >> /home/ec2-user/.bashrc + echo " variable_name=CRDBNODE\$node_number" >> /home/ec2-user/.bashrc + echo " ip=\`echo \$line | awk '{ print \$2 }'\`" >> /home/ec2-user/.bashrc + echo " echo export \$variable_name=\$ip >> crdb_node_list" >> /home/ec2-user/.bashrc + echo " done" >> /home/ec2-user/.bashrc + echo " source ./crdb_node_list" >> /home/ec2-user/.bashrc + echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS" >> /home/ec2-user/.bashrc sleep 20; su ec2-user -lc 'CREATENODECERT; CREATEROOTCERT; STARTCRDB' if [[ '${RunInit}' = 'YES' && "$CRDBNODE" = 3 ]]; then echo "Initializing Cockroach Database" && su ec2-user -lc 'cockroach init'; fi if [[ '${Installpsql}' = 'YES' ]]; then echo "Installing postgresql13"; amazon-linux-extras install postgresql13; fi @@ -1827,6 +1898,16 @@ Resources: echo " if [[ "$CRDBNODE" = 3 ]]; then echo "Sleeping while other cluster nodes start" && sleep 30 && echo "Initializing Cockroach Database" && cockroach init; fi" >> /home/ec2-user/.bashrc echo " if [[ "$CRDBNODE" = 3 ]]; then sleep 15; cockroach node status; fi" >> /home/ec2-user/.bashrc echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS() {" >> /home/ec2-user/.bashrc + echo " cockroach node status | awk -F ':' 'FNR > 1 { print \$1 }' | awk '{ print \$1, \$2 }' | while read line; do" >> /home/ec2-user/.bashrc + echo " node_number=\`echo \$line | awk '{ print \$1 }'\`" >> /home/ec2-user/.bashrc + echo " variable_name=CRDBNODE\$node_number" >> /home/ec2-user/.bashrc + echo " ip=\`echo \$line | awk '{ print \$2 }'\`" >> /home/ec2-user/.bashrc + echo " echo export \$variable_name=\$ip >> crdb_node_list" >> /home/ec2-user/.bashrc + echo " done" >> /home/ec2-user/.bashrc + echo " source ./crdb_node_list" >> /home/ec2-user/.bashrc + echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS" >> /home/ec2-user/.bashrc sleep 20; su ec2-user -lc 'CREATENODECERT; CREATEROOTCERT; STARTCRDB' if [[ '${RunInit}' = 'YES' && "$CRDBNODE" = 3 ]]; then echo "Initializing Cockroach Database" && su ec2-user -lc 'cockroach init'; fi if [[ '${Installpsql}' = 'YES' ]]; then echo "Installing postgresql13"; amazon-linux-extras install postgresql13; fi @@ -1979,6 +2060,16 @@ Resources: echo " if [[ "$CRDBNODE" = 3 ]]; then echo "Sleeping while other cluster nodes start" && sleep 30 && echo "Initializing Cockroach Database" && cockroach init; fi" >> /home/ec2-user/.bashrc echo " if [[ "$CRDBNODE" = 3 ]]; then sleep 15; cockroach node status; fi" >> /home/ec2-user/.bashrc echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS() {" >> /home/ec2-user/.bashrc + echo " cockroach node status | awk -F ':' 'FNR > 1 { print \$1 }' | awk '{ print \$1, \$2 }' | while read line; do" >> /home/ec2-user/.bashrc + echo " node_number=\`echo \$line | awk '{ print \$1 }'\`" >> /home/ec2-user/.bashrc + echo " variable_name=CRDBNODE\$node_number" >> /home/ec2-user/.bashrc + echo " ip=\`echo \$line | awk '{ print \$2 }'\`" >> /home/ec2-user/.bashrc + echo " echo export \$variable_name=\$ip >> crdb_node_list" >> /home/ec2-user/.bashrc + echo " done" >> /home/ec2-user/.bashrc + echo " source ./crdb_node_list" >> /home/ec2-user/.bashrc + echo "}" >> /home/ec2-user/.bashrc + echo "SETCRDBVARS" >> /home/ec2-user/.bashrc sleep 20; su ec2-user -lc 'CREATENODECERT; CREATEROOTCERT; STARTCRDB' if [[ '${RunInit}' = 'YES' && "$CRDBNODE" = 3 ]]; then echo "Initializing Cockroach Database" && su ec2-user -lc 'cockroach init'; fi if [[ '${Installpsql}' = 'YES' ]]; then echo "Installing postgresql13"; amazon-linux-extras install postgresql13; fi