实现原理:将各个slave上的id_rsa.pub 文件拉到master上进行合并,然后再分发个各个slave,分发的过程中必须要复制一次,否则sshd不会生效。也可用ssh-copy-id实现,但是不知道如何实现完全自动化,所以放弃了.
"""
File: LinuxBashShellScriptForOps:pyLinuxHostsSSHKeyInitialization.py
User: jinke
Create Date: 2018/2/2
Create Time: 11:24
"""
import time
import os
import logging
import logging.handlers
import sys
from fabric.api import *
from fabric.colors import red, green, yellow, blue, magenta, cyan, white
from fabric.context_managers import *
from fabric.contrib.console import confirm
env.roledefs = {
'all': ['192.168.12.89', '192.168.12.95', '192.168.12.19',],
'slaves': ['192.168.12.95', '192.168.12.19',],
}
env.passwords = {
'root@192.168.12.89:22':'jk',
'root@192.168.12.95:22':'jk',
'root@192.168.12.19:22':'jk',
}
env.port = '22'
env.user = "root"
env.sudo_user = "root" # fixed setting, it must be 'root'
env.disable_known_hosts = True
env.warn_only = False
#env.command_timeout = 25
env.connection_attempts = 2
def initLoggerWithRotate(logPath="/var/log", logName=None, singleLogFile=True):
current_time = time.strftime("%Y%m%d%H")
if logName is not None and not singleLogFile:
logPath = os.path.join(logPath, logName)
logFilename = logName + "_" + current_time + ".log"
elif logName is not None and singleL

该博客介绍了使用Python Fabric自动化配置SSH免密码登录的方法。通过将远程服务器的公钥合并到本地,并分发到目标服务器,实现了SSH连接的自动化和无密码操作。虽然ssh-copy-id可以完成部分任务,但在完全自动化流程中遇到了挑战。

7945

被折叠的 条评论
为什么被折叠?



