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中的函数用法入门教程
Sep 02 Python
python语言使用技巧分享
May 31 Python
Python生成8位随机字符串的方法分析
Dec 05 Python
python ansible服务及剧本编写
Dec 29 Python
一篇文章读懂Python赋值与拷贝
Apr 19 Python
python3实现随机数
Jun 25 Python
python 获取键盘输入,同时有超时的功能示例
Nov 13 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
Apr 11 Python
对Python强大的可变参数传递机制详解
Jun 13 Python
python中property属性的介绍及其应用详解
Aug 29 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
Feb 13 Python
Python调用C语言程序方法解析
Jul 07 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权限分配的实现代码
2013/04/28 PHP
php更新修改excel中的内容实例代码
2014/02/26 PHP
Netbeans 8.2与PHP相关的新特性介绍
2016/10/08 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
jquery动态添加删除一行数据示例
2014/06/12 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
jQuery中的基本选择器用法学习教程
2016/04/14 Javascript
html+javascript+bootstrap实现层级多选框全层全选和多选功能
2017/03/09 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
浅谈vue项目可以从哪些方面进行优化
2018/05/05 Javascript
node.js部署之启动后台运行forever的方法
2018/05/23 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
2020/02/14 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
python如何使用unittest测试接口
2018/04/04 Python
pandas object格式转float64格式的方法
2018/04/10 Python
python读取LMDB中图像的方法
2018/07/02 Python
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
python中协程实现TCP连接的实例分析
2018/10/14 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
Java面试题及答案
2012/09/08 面试题
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
总经理的岗位职责
2014/02/23 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
2015年全国保险公众宣传日活动方案
2015/05/06 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS
Win11电源已接通但未充电怎么办?Win11电源已接通未充电的解决方法
2022/04/05 数码科技