专栏首页Python中文社区Python中文社区开源项目计划:forward

Python中文社区开源项目计划:forward

Headkarl

IT设备自动化管理工具forward开源项目核心开发者。

GitHub ID:Headkarl

https://github.com/tecstack/forward

Authors

  • Forward由Headkarl创建,并且由cheung kei-chuen、Leann Mak、Shawn.T等多位用户参与贡献。
  • Forward was created by Wang Zhe(Headkarl) and contributed by many users, such as Zhang Qichuan(cheung kei-chuen), Mai Yi Fan(Leann Mak) and Dai Sheng(Shawn.T), and sincerely thanks each one.

Introduce 介绍

  • Forward是一个python模块,提供与目标设备之间的通道封装,基于指令行(Command Lines)的方式实现多数功能的封装,供开发者快速简便调用,屏蔽不同设备上指令差异。
  • 建议使用Forward用于多种(厂家、型号)网络设备的自动化管理场景,可以快速构建出运维场景脚本。
  • Forward is a python module, which provides channel encapsulation between target devices, and realizes most functions encapsulation based on Command Lines. It allows developers to invoke quickly and simply, and screen instructions on different devices.
  • We recommend the use of Forward for a variety of (manufacturer, model) network equipment automation management scene, can quickly build the operation and maintenance scenario script.

Installation

  • Building virtual environment (optional) 构建虚拟环境 (可选)
  • 开发者用户推荐,使用pyenv和virtualenv构建纯净的python环境,基于python版本2.7.10
  • We recommend that developer users use pyenv and virtualenv to build a pure Python environment which is based on Python version 2.7.10.
pyenv virtualenv 2.7.10 forward
pyenv activate forward
  • Pull 拉取当前版本
git clone https://github.com/tecstack/forward.git
cd forward
  • Dependency 安装依赖包
pip install -r requirements.txt
  • Setup 安装
python setup.py install

Getting Started

  • 下方代码段展示了一个简易的forward场景实现,批量连接到两台设备(思科Nexus7018),执行指令并获取结果。
  • The code section below shows a simple forward scenario implementation that is batch connected to two devices (CISCO Nexus7018), executes instructions and gets the results.
from forward import Forward

new = Forward()
new.addTargets(['192.168.113.1-192.168.113.2'], 'n7018', 'username', 'password')
instances = new.getInstances()

cisco1 = instances['192.168.113.1']
cisco2 = instances['192.168.113.2']

result1 = cisco1.execute('show version')
result2 = cisco2.execute('show version')

if result1['status']:
    print '[%s] OS version info: %s' % ('cisco1', result1['content'])
if result2['status']:
    print '[%s] OS version info: %s' % ('cisco2', result2['content'])
  • 上述代码段中出现的'cisco1'和'cisco2'就是Forward设备类实例(N7018),不同设备类实例包含的方法可能不同,具体请查阅类库文档。
  • The 'cisco1' and 'cisco2' appearing in the above code segment are Forward device class instances (N7018). Different device class instances contain different methods. Please consult the detailed library documents.

Advanced Usage

  • 初始化 Initialize
  • 预登陆 PreLogin
  • 自定义指令 command

Class

  • Forward目前包含40多种特定型号设备类库,查看详细的类库文档。
  • Forward currently contains more than 40 specific type of device class libraries, here to look at the detailed library documents.

License

  • GNU General Public License v3.0
  • See COPYING to see the full text.

Branch Info

  • RC,Releases和Stables分支都以版本号+各种鱼类命名。
  • devel分支对应正在开发的分支。
  • alpha分支对应一个早期的内部测试版本。
  • RC,Releases and Stables are named after the version number plus any kind of fish.
  • The devel branch corresponds to the release actively under development.
  • The alpha branch corresponds to a early release which is used for In-House test.

Version Info

  • 在版本记录中查看所有历史记录,开源前的版本更新仅可以看到记录。
  • Looking at all the history records in Version Info, the pre - source version updates can only see the records.

往期开源项目介绍

Python开源项目介绍:用zmail简单地发邮件

Python开源项目介绍:网站日志分析工具

Python中文社区开源项目计划:ImagePy

Amas:基于大数据平台技术开发的统一监控平台

本文分享自微信公众号 - Python中文社区(python-china),作者:forward

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python源码分析:类的机制

    作者:小屋子大侠,目前主要从事于python后端相关工作,使用使用python大概2年半的时间,平常喜欢分析工作中使用的工具的源码,如supervisor,gu...

    Python中文社区
  • Nginx+uWSGI部署Django网站的详细步骤,脱坑必备,值得收藏!

    对于Django部署来说,选择nginx和uWSGI是一个不错的选择,此教程旨在将Django部署到生产环境的服务器中。当然你也可以使用Apache或者其他的服...

    Python中文社区
  • 看到那个Edward 了吗?对!其实它是个Python库

    專 欄 ❈那只猫,Python中文社区专栏作者,福州大学大二水利专业学生,纯种非CS科班的数据分析师,熟练掌握Python数据分析大礼包,因长时间玩弄Kera...

    Python中文社区
  • 原创译文 | 研究人员利用虚拟现实技术训练人工智能无人机,减少无人驾驶汽车的碰撞

    麻省理工学院的研究人员开发了一种技术,可以利用VR增强的环境来训练快速移动的人工智能无人机,减少碰撞,从而减少维修或更换的需要。该系统名为“飞行护目镜”,将在本...

    灯塔大数据
  • Silverlight 2 Beta 2的Isolated Storage

    Silverlight beta 2 的配置有一个重大变化就是对DRM 和Application Storage的配置 ? Application stora...

    张善友
  • Deploy Using Travis-CI And Github Webhook — webpack doc as an example

    Overview Some friends and I have been running webpack-china for a few months. A...

    李成熙heyli
  • Jerry的SAP One Order框架重构的几版代码

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.bl...

    Jerry Wang
  • 【env】Sublime配置Pytho

    在sublime菜单栏中Tools => Build System => New Build System...,输入一下内容并保存为 Python3.subl...

    py3study
  • flink系列(9)-flink任务提交流程分析

    连续写了几天的flink StreamGraph的代码,今天闲来说一下flink的启动,今天主要说的是本地模式(LocalStreamEnvironment)启...

    yiduwangkai
  • js引擎v8源码解析之平台相关(上篇)(基于v8 0.1.5)

    PlatformData 是管理线程中,不同系统中的数据。这里只看linux系统。只保存了线程id。

    theanarkh

扫码关注云+社区

领取腾讯云代金券