File: fuel_distribute_key.sh

package info (click to toggle)
python-os-faults 0.2.7-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 696 kB
  • sloc: python: 4,797; sh: 54; makefile: 24
file content (26 lines) | stat: -rwxr-xr-x 1,174 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash -x

# Distribute SSH keys on all nodes deployed by OpenStack Fuel

KEY_FILE_NAME="${HOME}/.ssh/os_faults"
HOST=${1:-fuel.local}
USERNAME=${2:-root}

echo "distributing keys to Fuel: ${USERNAME}@${HOST}"

if [ ! -f ${KEY_FILE_NAME} ]; then
  echo "generating new key in ${KEY_FILE_NAME}"
  ssh-keygen -b 4096 -f ${KEY_FILE_NAME} -q -t rsa -P ""
fi

echo "copying the key to master node ${USERNAME}@${HOST}"
ssh-copy-id -i ${KEY_FILE_NAME} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ${USERNAME}@${HOST}

echo "get list of nodes in the cluster"

for NODE in `ssh -i ${KEY_FILE_NAME} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ${USERNAME}@${HOST} fuel2 node list -c ip -f value`; do
  echo "copying the key to node ${NODE}"
  # ssh-copy-id does not copy the key over the hop when the destination is already reachable via its own key
  cat ${KEY_FILE_NAME}.pub | ssh -i ${KEY_FILE_NAME} ${USERNAME}@${HOST} ssh ${NODE} 'tee -a .ssh/authorized_keys'
  ssh -i ${KEY_FILE_NAME} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ProxyCommand="ssh -i ${KEY_FILE_NAME} -W %h:%p ${USERNAME}@${HOST}" root@${NODE} hostname
done