У меня есть очарование Juju для конкретного кластерного сервиса. При развертывании вручную доступ SSH без пароля для администратора кластера включается между узлами системы управления и другими узлами в кластере. Я бы хотел, чтобы мой Juju Charm автоматизировал этот процесс.
Проще говоря:
я думал о пуше открытый ключ в свойство отношения для одноранговой связи между узлами ... и просто чтение его с другого конца. Но механика отношения-отношения-изменения такова, что я уже вижу ту процедуру, называемую n-факториалом раз для кластера n-узла . Я бы предпочел не добавлять больше сложности, если смогу избежать этого.
Я расскажу вам о том, как синхронизировать ключи между равноправными узлами (для ваших управляющих узлов), но это можно использовать как есть для всех ваших узлов AFAICT.
в отношении отношения изменился сценарий подключения:
#if there is no pubkey corresponding to this nodes ID, export this relation
ThisUnitID=$(echo $JUJU_UNIT_NAME | awk -F/ '{print $2}')
if [ -z $(relation-get pub_key"$ThisUnitID" ]; then
relation-set pub_key"$ThisUnitID" "$ThisPubKey"
fi
#get everyone's pub key
MEMBERS=$(relation-list)
for member in $MEMBERS; do
memberID=$(echo $member | awk -F/ '{print $2}')
custom_save_pub_key $(relation-get pub_key"$memberID" )
done
Если я правильно понимаю, джиу, это будет вызываться один раз в каждом узле при добавлении нового узла, это позволит новому узлу получить доступ ко всем ключ от другого. Но так как новый узел также меняет отношение, это приведет к тому, что все остальные узлы будут выполнять его снова, чтобы получить обновленный список ключей ... очень хакерский, чтобы зависеть от побочного эффекта, но это было очень кратко ..
удачи.