zoukankan      html  css  js  c++  java
  • paramiko模块实现Xshell自动连接服务器

    python和自动化运维

           在工作中往往会遇到要在几十台甚至几万台服务器上面跑一条命令或者是跑一个脚本,可以使用批量管理软件(ansible、jumpserver、puppet等),如果脚本用来实现的话,基本思路是:需要先登录要操作的服务器,然后再执行命令或者脚本,其中最难的是怎么批量免密登录到服务器(不要说几百台,就是十几台,也会让你很烦躁),方法很多,这里只介绍python的模块:paramiko。

    系统:centos 7.6

    python环境:python 2.7

    1. 安装paramiko模块

    pip install pycrypto paramiko  #前提是你已经安装pip,如果没有安装pip的话,查看最后,有安装的方式

    2. 脚本内容

    (1)将所有要批量添加服务器的IP地址存入一个文件

    cat /mnt/script/ip.txt

      192.168.0.1

      192.168.0.2

      192.168.0.3

    (2)修改和执行脚本

    cat tuisong.py  #需要修改三个地方,其他的都是固定格式

      #! /usr/bin/env python
       #   -*-coding:utf-8-*-

      import paramiko  #导入模块

      with open('/mnt/script/ip.txt') as f:  #服务器的IP地址,注意这里要加上单引号或者双引号
      for line in f:
      print line
      ssh = paramiko.SSHClient()
      ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
      ssh.connect(line, 22, '用户名','password')  #输入远程连接的端口号、登录的用户名和登录用户的密码
      stdin, stdout, stderr = ssh.exec_command('要执行的命令')  #例如:mkdir /root/test 或者 'sh ifconfig_ip.sh'
      print stdin
      print stdout
      print stderr

    python tuisong.py  #执行脚本

    补充内容:安装pip

    yum -y install epel-release

    yum -y install python-pip

  • 相关阅读:
    centos7 做rails 执行rails server 报错
    centos 7 安装 rvm 超时
    centos7 打造基于python语言Selenium2自动化开发环境
    RubyMine8 安装
    linux 下安装 RZ SZ命令 以及使用
    centos 7.2 安装mysql 修改 初始密码
    win10系统配置FTP
    Windows环境安装MySQL8.0.11
    IntelliJ IDEA 2017 上传本地项目至码云
    IntelliJ IDEA 2017.3 搭建一个多模块的springboot项目(三)
  • 原文地址:https://www.cnblogs.com/yunjisuan1024/p/11766598.html
Copyright © 2011-2022 走看看