实现原理:将各个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("%