用于与托管煎锅交互的包和cli工具。

skilletcli的Python项目详细描述


skilletcli_icon

煎锅

Build Statuscoverage

概述

这个实用程序提供了一个命令行界面到帕洛阿尔托“煎锅”, 设计用于导入防火墙或全景图的管理配置模板。

安装

先决条件

要使用skilletcli,必须安装git客户端。

Binaries for windows/OSX can be found here

Linux用户可以使用他们首选的包管理器。

获取代码

windows

Download the latest release from the releases page.

mac

command -v git ;if[[$? !=0]];thenecho"Git not installed.";else curl -L https://github.com/adambaumeister/skilletcli/releases/latest/download/skilletcli -o skilletcli ; chmod +x skilletcli ;fi

Mac用户注意:SkilletCli是在MacOS 10.14上构建的。较新/较旧的版本可能不兼容,在这种情况下,您需要运行 从源头上。

linux

command -v git ;if[[$? !=0]];thenecho"Git not installed.";else curl -L https://github.com/adambaumeister/skilletcli/releases/latest/download/skilletcli -o skilletcli ; chmod +x skilletcli ;fi

准备环境

skilletcli要求在使用之前填充一个变量文件。

此文件用于为具有特定于环境的信息的各种代码段创建模板。 默认情况下,此文件名为config_variables.yaml,并从当前目录(./config_variables.yml)中检索它

click here to see a complete example, populated with default values

如果此文件未指定或丢失/不可用,将使用默认值。

用法

煎锅布局概述

skilletcli返回如下结构:

煎锅收藏/煎锅/片段堆栈/片段

煎锅集合是与类型(如“全景”或“全景”)关联的一组煎锅。 代码段堆栈是具有特定用例的代码段的集合。

默认情况下,skilletcli将使用目标防火墙的设备类型来确定要使用的skillet类型,以及 用于代码段堆栈的“代码段”。

基本用法

列出所有可用的片段、煎锅和煎锅集合

skilletcli

此命令列出所有可用的代码段。

将片段推送到设备

skilletcli address

这将向设备推送一个片段“地址”,提示输入所有登录设置。

push多个片段

skilletcli address tag external_list

与上面一样,只是在一个命令中推送多个代码段。所需的代码段数量 可以这样推。

钥匙存储

可以在本地存储apikey,以避免将环境变量用于命令行标志。

运行任何skcli命令时,都可以通过传递标志enable_keystore来启用密钥库。如果身份验证成功,则生成的api密钥 将存储在$home/.skcli.json中。

在密钥库启用一次之后,不需要在随后的运行中重新指定标志。

# Enable the keystore
skilletcli --enable_keystore <args>
# Clear the keystore 
skilletcli --clear_keystore

环境变量

skilletcli允许您使用环境变量,而不是交互式提示。

变量为:

  • skcliu用户名
  • skcliu密码
  • skcliu地址

实验:基于http的skillet检索

煎锅最终将通过一个可公开访问的api集中托管。 如果这样检索煎锅,就不需要git客户机。

目前,此功能仍处于开发阶段,因此请自行承担使用风险。

若要利用此功能,请添加标记--repotype和--repopath,如下所示。

skilletcli --repotype api --repopath https://skillet-deploy.appspot.com

开发煎锅

为SkilletCli做贡献需要在您的机器上安装Python3.6+。

安装后,建议创建一个虚拟环境,使代码独立。

python3 -m venv venv
# Windows
venv/scripts/activate
# *nixsource venv/scripts/activate

克隆代码并安装模块要求。

git clone https://github.com/adambaumeister/skilletcli.git
cd skilletcli
pip install -r requirements.txt

你现在准备好做出改变了!

测试

煎锅的测试分为两个逻辑过程

  1. 单元测试,或独立功能的测试
  2. 集成测试,或针对真实panos设备的功能测试

所有测试都是使用pytest初始化的。

pytest

默认情况下,只运行单元测试。要运行集成测试,必须指定标准 要测试的设备的skcli环境变量(地址、用户名、密码) 以及附加的env var:skcliu device_test。 设置环境后,只需像正常一样运行pytest

每当检测到对master的更改时,pytest将作为ci的一部分使用travisci自动运行。ci只运行单元测试。

测试覆盖率

更新skcli之后,可以重新运行覆盖率测试,并使用下面的命令更新小图标。

coverage run --omit ./venv* -m pytest
coverage-badge -o .github/cov.svg

包装

二进制打包使用由travis管理的pyinstaller完成。打包在发布发布时发生 (标记)在主分支上。

pypi发行版也通过travis在每个标记的发行版上处理。

手动PYPI包装:

pip install setuptools wheel
pip install twine
python setup.py bdist bdist_wheel
twine upload --repository-url https://test.pypi.org/legacy/ dist/*

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

推荐PyPI第三方库


热门话题
java Android首选项相同getPreference()值的不同数据   字符串如何在Java中连接两个列表中的单词   安卓 Java Socket编程:检测客户端和服务器是否连接   使用JTextField的java无法将值转换为int   在java中,如何在不通过超级构造函数设置的情况下将消息设置为自定义异常类   用于标识属性值的java正则表达式模式   Android中的java不可见谷歌地图   java正确取消启动ExecutorService的JavaFX任务   在非活动java类中使用安卓的融合位置提供程序,并在主活动类中获取经度和纬度   spring为什么我的大摇大摆不能用springboot在java中工作?   java JSF(2.2)ViewScope在Weblogic 12.2.1.2和JDK 8上使用Spring 4.3.7(在Mac OS和Docker Oracle Linux环境上)   java如何用一个按钮提高计时器速度   java如何检查字符是否是元音?   注册表引用了不存在的Java运行时环境安装或运行时已损坏错误   来自ResultSet java的mysql getDateTime   maven LanguageTool Java API是否具有“无用”依赖关系?   twitter api身份验证的java Trycatch问题   java在Apache Struts 1.1中是否可以显式白名单?   安卓致命异常:主java。lang.RuntimeException:被问及未知片段