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中的WSGI接口
May 11 Python
python使用线程封装的一个简单定时器类实例
May 16 Python
Python中创建字典的几种方法总结(推荐)
Apr 27 Python
python基础_文件操作实现全文或单行替换的方法
Sep 04 Python
python复制文件到指定目录的实例
Apr 27 Python
从django的中间件直接返回请求的方法
May 30 Python
Python实现处理逆波兰表达式示例
Jul 30 Python
python 列表中[ ]中冒号‘:’的作用
Apr 30 Python
python利用opencv实现SIFT特征提取与匹配
Mar 05 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 Python
python能否java成为主流语言吗
Jun 22 Python
Python WebSocket长连接心跳与短连接的示例
Nov 24 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
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
仿微博字符限制效果实现代码
2012/04/20 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
浅谈JavaScript的Polymer框架中的事件绑定
2015/07/29 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
[01:20:37]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
[35:27]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第二场 10.29
2020/10/29 DOTA
python实现矩阵乘法的方法
2015/06/28 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
介绍一下mysql的日期和时间函数
2013/03/28 面试题
大学生求职推荐信
2013/11/27 职场文书
见习期自我鉴定
2014/01/31 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
节约用电标语
2014/06/17 职场文书
工厂标语大全
2014/10/06 职场文书
辞职书格式样本
2015/02/26 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript