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

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第三方库


热门话题
java Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本