Python自动化运维

重点:

  1. SSH免密码登录
  2. 使用Ansible批量下发或收集文件
  3. 使用Paramiko批量监控

SSH免密码登录


使用RSA非对称机密算法
Public Key 公钥
Private Key 私钥
Python自动化运维_第1张图片
命令:

ssh-keygen

生成密钥,公钥和私钥

ssh-copy-id

将公钥放入服务器

例子:
Python自动化运维_第2张图片
Python自动化运维_第3张图片
验证:
Python自动化运维_第4张图片


Ansible


Python自动化运维_第5张图片
Python自动化运维_第6张图片
配置机器列表

/etc/ansible/hosts

将机器分组,使用[]分组
Python自动化运维_第7张图片

ping模块,需要目标服务器安装python,raw模块执行原生的shell命令
Python自动化运维_第8张图片

在目标服务器安装python

ansible all -m raw -a "apt update && apt install -y python "

all 服务器分组
-m模块
-a参数

模块讲解

模块名称 作用
raw 执行原生shell命令
ping 检验连接服务器需安装python
script 将本机的脚本文件传输的目标机上执行
command 与raw类似,但需要目标机器安装python,使用次命令可省略“-m command”
copy 将本机文件复制到目标机器上
file 针对文件操作,如改变权限
shell 执行目标机器上存在的脚本
fetch 将目标机器上的文件下载回来

例子:
script:
Python自动化运维_第9张图片
copy:
在这里插入图片描述
file:
在这里插入图片描述
shell:
Python自动化运维_第10张图片
fetch:
Python自动化运维_第11张图片
src目标机器路径,dest本机路径

Paramiko

例子:

import paramiko

ssh = paramiko.SSHClient()  #实例化
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())    #连接未知主机自动处理,不会报错
ssh.connect(hostname='192.168.88.180',username='root',password='root')
command = "free -m"
stdin stdout stderr = ssh.exec_command(command)   #stdin标准输入,stdout标准输出,stderr标准错误输出
res = stdout.read().decode()
print(res)

Python自动化运维_第12张图片
akw过滤使用正则

你可能感兴趣的:(Python学习笔记)