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 实时得到cpu和内存的使用情况方法
Jun 11 Python
关于pytorch多GPU训练实例与性能对比分析
Aug 19 Python
一行Python代码制作动态二维码的实现
Sep 09 Python
DJANGO-URL反向解析REVERSE实例讲解
Oct 25 Python
基于python实现从尾到头打印链表
Nov 02 Python
通过实例学习Python Excel操作
Jan 06 Python
Python序列化pickle模块使用详解
Mar 05 Python
Python @property及getter setter原理详解
Mar 31 Python
使用keras内置的模型进行图片预测实例
Jun 17 Python
Python用来做Web开发的优势有哪些
Aug 05 Python
Python‘==‘ 及 ‘is‘相关原理解析
Sep 05 Python
python中scipy.stats产生随机数实例讲解
Feb 19 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文件注释标记及规范小结
2012/04/01 PHP
具有时效性的php加密解密函数代码
2013/06/19 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
Javascript 自定义类型方法小结
2010/03/02 Javascript
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
改进版通过Json对象实现深复制的方法
2012/10/24 Javascript
JavaScript初学者建议:不要去管浏览器兼容
2014/02/04 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
微信小程序实现美团菜单
2018/06/06 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
Vuex的热更替如何实现
2020/06/05 Javascript
微信小程序实现锚点跳转
2020/11/23 Javascript
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
Django查询数据库的性能优化示例代码
2017/09/24 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
Django 登陆验证码和中间件的实现
2018/08/17 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
英国护发和美妆在线商店:Klip Shop
2019/03/24 全球购物
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
夫妻忠诚协议范文
2014/11/16 职场文书
建筑工地资料员岗位职责
2015/04/13 职场文书
导游词之云南-元阳梯田
2019/10/08 职场文书
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python
25张裸眼3D图片,带你重温童年的记忆,感受3D的魅力
2022/02/06 杂记
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js