Python实现自动装机功能案例分析


Posted in Python onOctober 22, 2020

前言

提示:在管理服务器的过程中,发现有很多服务器在启动的过程中默认以PXE方式启动,这就导致我们无法将PXE装机程序放开到所有的交换机端口中,本文是以Python对dell服务器进行了一些控制,更多厂商机器的管理和控制,仍在调研中。


提示:以下是本篇文章正文内容,下面案例可供参考

一、利用snmp协议获取到目标机器的网卡mac地址

代码如下

def get_mac(ipmi, netcard):
	#ipmi即服务器idrac_ip,netcard即网卡序列号(一般是4个,从1开始)
  # 将控制卡IP传给snmp命令,获取mac地址
  popen = subprocess.Popen(f'snmpwalk -v 2c -c public {ipmi} 1.3.6.1.4.1.674.10892.5.4.1100.90.1.6.1.{netcard}',
               stdout=subprocess.PIPE, shell=True)
  popen.wait()
  res = popen.stdout.read().decode().split()[-1].split('"')[0]
  res1 = res.replace(":", "")
  res2 = res.lower()
  # 获取到的mac地址,去空格,写入到文件中
  with open("/root/allow_mac", mode="w", encoding="utf-8") as f:
    f.write(res + "\n")
  print(res)
  #获取到mac地址的目的有两个,可以将mac地址传给后端交换机,交换机找到对应的接口,自动进行网络配置的下发,
	#另外一个是针对mac地址做防火墙控制

防火墙的初始化:

def init_iptables():
  # 调用iptables初始化防火墙策略
  print("防火墙开始初始化")
  subprocess.call('/sbin/iptables -F ', shell=True)
  subprocess.call('/sbin/iptables -P OUTPUT ACCEPT ', shell=True)
  subprocess.call('/sbin/iptables -A INPUT -m state --state INVALID -j DROP ', shell=True)
  subprocess.call('/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ', shell=True)
  subprocess.call('/sbin/iptables -P INPUT DROP ', shell=True)
  # stdout = subprocess.call('/sbin/iptables -L ', shell=True)
  # print(stdout)
  # subprocess.call('systemctl stop dhcpd ', shell=True)
  print("防火墙初始化完毕")
  #主要就是封装了一系列防火墙的配置,在装机完成之后,可以进行再控制,防止其他机器通过pxe-server进行装机操作

到此这篇关于Python实现自动装机功能案例分析的文章就介绍到这了,更多相关Python自动装机内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python解析最简单的验证码
Jan 07 Python
python安装numpy&安装matplotlib& scipy的教程
Nov 02 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
python写入已存在的excel数据实例
May 03 Python
Python函数参数操作详解
Aug 03 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
Jan 07 Python
关于pytorch中全连接神经网络搭建两种模式详解
Jan 14 Python
Python脚本去除文件的只读性操作
Mar 05 Python
PyQt5+Pycharm安装和配置图文教程详解
Mar 24 Python
Python基于callable函数检测对象是否可被调用
Oct 16 Python
Python headers请求头如何实现快速添加
Nov 03 Python
PyTorch中permute的使用方法
Apr 26 Python
Python reversed反转序列并生成可迭代对象
Oct 22 #Python
Python+OpenCV图像处理—— 色彩空间转换
Oct 22 #Python
Python类的继承super相关原理解析
Oct 22 #Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
Oct 22 #Python
Python基于内置函数type创建新类型
Oct 22 #Python
python使用ctypes库调用DLL动态链接库
Oct 22 #Python
Python通过len函数返回对象长度
Oct 22 #Python
You might like
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
ie focus bug 解决方法
2009/09/03 Javascript
jQuery Validation插件remote验证方式的Bug解决
2010/07/01 Javascript
ajax 缓存 问题 requestheader
2010/08/01 Javascript
基于jQuery的左右滚动实现代码
2010/12/03 Javascript
node.js中Socket.IO的进阶使用技巧
2014/11/04 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
2016/12/19 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
在微信小程序中使用图表的方法示例
2019/04/25 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
vue中使用element组件时事件想要传递其他参数的问题
2019/09/18 Javascript
Vue-cli打包后如何本地查看的操作
2020/09/02 Javascript
PyCharm代码格式调整方法
2018/05/23 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
Python适配器模式代码实现解析
2019/08/02 Python
django 控制页面跳转的例子
2019/08/06 Python
关于多元线性回归分析——Python&SPSS
2020/02/24 Python
python drf各类组件的用法和作用
2021/01/12 Python
详解HTML5.2版本带来的修改
2020/05/06 HTML / CSS
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
保密承诺书
2014/03/27 职场文书
化学教育专业求职信
2014/07/08 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
黄河绝恋观后感
2015/06/08 职场文书
新闻发布会新闻稿
2015/07/17 职场文书
关于党风廉政建设宣传教育月的活动总结!
2019/08/08 职场文书
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB
从原生JavaScript到React深入理解
2022/07/23 Javascript