1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
Net-Shell 是一个用 Rust 编写的强大脚本执行和变量提取框架,支持通过 SSH 进行远程执行和本地执行,具有流水线编排功能和通过正则表达式进行灵活变量提取的能力。
```
net-shell/
├── src/ # 源代码目录
│ ├── main.rs # 主程序入口
│ ├── lib.rs # 库入口
│ ├── models/mod.rs # 数据模型定义
│ ├── config/mod.rs # 配置管理
│ ├── executor/mod.rs # 执行器实现
│ ├── ssh/mod.rs # SSH 连接管理
│ ├── ssh/local.rs # 本地执行
│ └── vars/mod.rs # 变量管理
├── scripts/ # 脚本目录
│ ├── global.sh # 全局脚本
│ ├── get_system_info.sh # 系统信息获取脚本
│ ├── deploy.sh # 部署脚本
│ └── verify.sh # 验证脚本
├── config.yaml # 配置文件
├── Cargo.toml # Rust 项目配置
└── README.md # 项目文档
```
1. 2.3.4.5.6.
```bash
cargo build --release
```
使用默认配置文件:
```bash
cargo run
```
指定自定义配置文件:
```bash
cargo run -- config_custom.yaml
```
```bash
cargo install net-shell
```
配置文件使用 YAML 格式,主要包含以下部分:
1. 2.3.4.
在配置文件中可以使用 `{{ variable_name }}` 语法引用变量:
- --
使用正则表达式从命令输出中提取变量:
```yaml
extract:
- - - -
- --
1. 2.3.
1. 2.3.
- ---