2个不稳定版本
0.2.0 | 2022年11月9日 |
---|---|
0.1.0 | 2022年8月9日 |
#1 in #eos
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