自动化运维使用Fabric工具实现多台主机批量分发ssh秘钥
前言
Fabric是一个使用Python编写的自动化运维工具,我们可以通过这个工具实现很多的功能。
在生产环境中,当遇到员工离职或者进行环境部署时,经常会需要更换服务器的秘钥,当服务器数量众多时,手动操作就显得很不现实,但是要是使用Fabric运维工具的话,这个操作就比较简单进行了。
由于现在的线上服务器多采用SSH Key的方式管理,所以对于大多数系统运维人员来说SSH Key分发也是工作内容之一,故而建议大家掌握此脚本。
代码实现
# -*- coding:utf-8 -*-
from fabric.api import *
def host_type():
run('uname-s')
def hello():
print('fromfabrichelloworld')
def ls():
with settings(warn_only=True):
sudo("ls -l")
#put("/root/.ssh/id_rsa.pub", "/root/admin-master.pub")
#sudo("cp /root/admin-master.pub /root/.ssh/authorized_keys")
#sudo("chmod 600 /root/.ssh/authorized_keys")
env.user = 'root'
env.key_filename = '/root/.ssh/id_rsa'
hosts = ['X.X.X.X']
for host in hosts:
env.host_string = host
#put_admin_key() ##为普通用户分发秘钥对
ls()