管理远程系统和服务的工具

python-rrmngmnt的Python项目详细描述


Build StatusCode CoverageCode Health

python rrmngmnt

远程资源管理

简介

这个工具帮助你管理运行在上面的远程机器和服务。 它的目标是基于linux的机器。所有这些都是通过ssh连接完成的, 这意味着ssh服务器必须已经在那里运行了。

fromrrmngmntimportHost,RootUserh=Host("10.11.12.13")h.users.append(RootUser('123456'))exec=h.executor()printexec.run_cmd(['echo','Hello World'])

功能

为管理计算机上的资源而提供的接口列表,以及 例子。

文件系统

基本的文件操作,你可以找到python'os'模块的子集 与文件相关。

printh.fs.exists("/path/to/file")h.fs.chown("/path/to/file","root","root")h.fs.chmod("/path/to/file","644")h.fs.unlink("/path/to/file")

此外,还有从远程系统获取/放置文件的方法 到/从本地系统。

h.fs.get("/path/to/remote/file","/path/to/local/file/or/target/dir")h.fs.put("/path/to/local/file","/path/to/remote/file/or/target/dir")

有一种特殊的方法允许在主机之间传输文件。

h1.fs.transfer("/path/to/file/on/h1",h2,"/path/to/file/on/h2/or/target/dir",)

您也可以安装设备。

withh.fs.mount_point('//example.com/share',opts='ro,guest',fstype='cifs',target='/mnt/netdisk')asmp:h.fs.listdir(mp.target)# list mounted directorymp.remount('rw,sync,guest')# remount with different optionsh.fs.touch('%s/new_file'%mp.target)# touch file

防火墙

允许管理防火墙配置。检查哪个防火墙服务 在主机(firewalld/iptables)上运行并配置此服务。

h.firewall.is_active('iptables')h.firewall.chain('OUTPUT').list_rules()h.firewall.chain('OUTPUT').add_rule('1.1.1.1','DROP')

网络

它允许管理网络配置。

printh.network.hostnameh.network.hostname="my.machine.org"printh.network.all_interfaces()printh.network.list_bridges()

包管理

它封装了各种包管理。它能确定 使用哪个包管理。您仍然可以指定包管理 明确地。

实施管理:

  • apt
  • 百胜
  • DNF
  • 转速
# install htop package using implicit managementh.package_management.install('htop')# remove htop package using rpm explicitlyh.package_management('rpm').remove('htop')

系统服务

您可以切换系统服务,它封装了各种服务管理。 它能够确定在大多数情况下使用哪个服务管理。

实施管理:

  • 系统d
  • Sysvinit
  • 初始控制
ifh.service('httpd').status():h.service('httpd').stop()ifh.service('httpd').is_enabled():h.service('httpd').disable()

操作系统信息

主机提供os属性,允许获取基本操作 系统信息。 注意os.release_info依赖于systemd init system。

printh.os.distribution# Distribution(distname='Fedora', version='23', id='Twenty Three')printh.os.release_info# {'HOME_URL': 'https://fedoraproject.org/',#  'ID': 'fedora',#  'NAME': 'Fedora',#  'PRETTY_NAME': 'Fedora 23 (Workstation Edition)',#  'VARIANT': 'Workstation Edition',#  'VARIANT_ID': 'workstation',#  'VERSION': '23 (Workstation Edition)',#  'VERSION_ID': '23',#  ...# }printh.os.release_str# Fedora release 23 (Twenty Three)

存储管理

正在进行中。计划的是nfs&lvm服务。

电源管理

给你控制主机电源状态的可能性,你可以重启, 打开、关闭主机电源并获取主机电源状态。

实施管理:

  • ssh
  • IPMI
ipmi_user=User(pm_user,pm_password)ipmi_params={'pm_if_type':'lan','pm_address':'test-mgmt.testdomain','user':ipmi_user}h.add_power_manager(power_manager.IPMI_TYPE,**ipmi_params)# restart host via ipmitoolh.power_manager.restart()

需要

  • 帕拉米科
  • netaddr

安装

python setup.py devop

测试

tox

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
datetime如何使用JodaTime在Java中设置时间属性   java固定算法的性能时间   java如何从JMenu中获取所选项以更改文本区域的文本颜色?   java配置单元UDF传递数组<string>作为参数   javaapachebeam和BigQuery   java与PrintWriter之间的差异。printf和PrintWriter。格式方法   继承如何处理按Java版本更改的导入,以及在多个版本上编译   xml java。lang.noClassDefFoundant生成错误   java如何使用包含映射的JSON发送POST请求?   java如何在任何应用程序的JAR文件中绑定MySql数据库?   Java脚本解释器   sslhttpclientjava。网SocketException:未实现未连接的socket   java如何为Android应用程序创建类似于Cron作业的东西   java JButton+radiobox+复选框   java内存管理将文件写入内存   java这是计算对象实例的有效方法吗?   用于死锁情况的java代码?   JavaSpring容器作为新实体插入,而不是存储在表中