2个不稳定版本

0.2.0 2022年11月9日
0.1.0 2022年8月9日

#1 in #eos

BSD-3-Clause

69KB
1.5K SLoC

EOS eAPI

此crate允许从Rust程序在Arista EOS交换机上执行CLI命令。它支持阻塞和异步API。


[dependencies]
eos-eapi = "0.2"

示例

通过Unix域套接字使用API的示例

let result = ClientBuilder::unix_socket()
                .build_blocking()?
                .run(&["show clock", "show aliases"], ResultFormat::Json)?;
match result {
    Response::Result(v) => println!("{v:?}"),
    Response::Error {
        message,
        code,
        errors,
    } => println!("error code: {code}, message: {message}, outputs: {errors:#?}"),
};

通过HTTP使用API的示例

let result = ClientBuilder::unix_http("localhost")
                .set_authentication("admin".to_owned(), "pass".to_owned())
                .build_blocking()
                .run(&["show clock", "show aliases"], ResultFormat::Json)?;
match result {
    Response::Result(v) => println!("{v:?}"),
    Response::Error {
        message,
        code,
        errors,
    } => println!("error code: {code}, message: {message}, outputs: {errors:#?}"),
};

交换机配置

如果您使用HTTPS连接到eAPI,根据您的EOS版本,默认HTTPS服务器配置可能存在过时设置,客户端将无法连接。

您需要创建一组密钥和证书

security pki key generate rsa 4096 capikey.pem
security pki certificate generate self-signed capi.pem key capikey.pem validity 3650 parameters common-name HOSTNAME subject-alternative-name dns HOSTNAME

然后使用它们创建一个SSL配置文件

config
management security
   ssl profile p01
      tls versions 1.2
      cipher-list ECDHE-RSA-AES256-GCM-SHA384
      certificate capi.pem key capikey.pem
      trust certificate ARISTA_SIGNING_CA.crt
      trust certificate ARISTA_ROOT_CA.crt

应用配置文件

management http-server
   protocol http
   protocol https ssl profile p01

依赖关系

~9–21MB
~396K SLoC