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)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SDNLAB

ONOS高可用性和可扩展性实现初探

ONOS的发布直面OpenDaylight 进行挑战,直接将 SDN领域两大阵营(运营商和设备商)的竞争瞬间升级,之所以 ONOS能做到这一点,首先,ONOS的...

2665
来自专栏java达人

Netty 长连接服务

来源:Dozer's Technology Blog 链接:https://www.dozer.cc/2014/12/netty-long-connectio...

9838
来自专栏架构师之路

db如何快速回滚+恢复,DBA的神技能

如果人为执行了“删库”操作,命令会同步给其他从库,导致所有库上的数据全被删除,无法恢复,故这种方案是不行的。

1475
来自专栏高性能服务器开发

(八)高性能服务器架构设计总结4——以flamigo服务器代码为例

二、架构篇 一个项目的服务器端往往由很多服务组成,就算单个服务在性能上做到极致,支持的并发数量也是有限的,举个简单的例子,假如一个聊天服务器,每个用户的信息是1...

4754
来自专栏Netkiller

高级软件工程师(面试题)

高级软件工程师(面试题) 出题者:netkiller 出处:http://www.netkiller.cn/ 高级软件工程师 下面的面试题不分语言,适用于所有...

3513
来自专栏FreeBuf

Python渗透工具的架构探讨

本文原创作者:VillanCh,本文属FreeBuf原创奖励计划,未经许可禁止转载 在最近忙活的一些事情中,体会到:如果你写的不是一个脚本,那么作为一个有命令行...

1995
来自专栏小狼的世界

Ajax与REST

REST(Representational State Transfer)是一种开发思想,互联网不断发展,富媒体越来越多的应用,不断地冲击着我们的应用,使应用的...

932
来自专栏blackheart的专栏

[解读REST] 6.REST的应用经验以及教训

衔接上文[解读REST] 5.Web的需求 & 推导REST,上文根据Web的需求推导出了REST架构风格,以及REST的详细描述和解释。自从1994年以来,R...

25410
来自专栏JAVA高级架构

架构师必备词汇和知识点

01 高可用 负载均衡(负载均衡算法) 反向代理 服务隔离 服务限流 服务降级(自动优雅降级) 失效转移 超时重试(代理超时、容器超时、前端超时、中间件超时、...

4228
来自专栏轮子工厂

Wox一款国产开源的快捷启动器辅助工具神器

如果你也不喜欢电脑桌面上满是程序的快捷方式,如果你也喜欢博主这样干干净净的桌面,甚至喜欢高效的键盘操作,那么你需要一款好用的快速启动器软件。

781

扫码关注云+社区