109 lines
2.0 KiB
Rust
109 lines
2.0 KiB
Rust
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
|
pub struct Config {
|
|
anti_phishing_code: String,
|
|
|
|
keymap: String,
|
|
modules: String,
|
|
|
|
auths: Vec<Auth>,
|
|
|
|
networks: Vec<Network>,
|
|
|
|
ssh: SSHServer,
|
|
|
|
#[serde(default)]
|
|
pre_lvm_crypt: Vec<CryptDev>,
|
|
#[serde(default)]
|
|
lvm: Vec<LvmVG>,
|
|
#[serde(default)]
|
|
crypt: Vec<CryptDev>,
|
|
|
|
bootstrap: Bootstrap,
|
|
}
|
|
|
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
|
pub struct Auth {
|
|
name: String,
|
|
#[serde(rename = "sshKey")]
|
|
ssh_key: String,
|
|
password: String,
|
|
}
|
|
|
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
|
pub struct Network {
|
|
name: String,
|
|
interfaces: Vec<NetworkInterface>,
|
|
script: String,
|
|
}
|
|
|
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
|
pub struct NetworkInterface {
|
|
pub var: String,
|
|
pub n: i16,
|
|
pub regexps: Vec<String>,
|
|
}
|
|
|
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
|
pub struct SSHServer {
|
|
listen: String,
|
|
keys: SSHKeys,
|
|
}
|
|
|
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
|
pub struct SSHKeys {
|
|
dsa: String,
|
|
rsa: String,
|
|
ecdsa: String,
|
|
ed25519: String,
|
|
}
|
|
|
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
|
pub struct LvmVG {
|
|
vg: String,
|
|
pvs: LvmPV,
|
|
|
|
defaults: Option<LvmLVDefaults>,
|
|
|
|
lvs: Vec<LvmLV>,
|
|
}
|
|
|
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
|
pub struct LvmLVDefaults {
|
|
fs: String,
|
|
raid: Option<Raid>,
|
|
}
|
|
|
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
|
pub struct LvmLV {
|
|
name: String,
|
|
fs: String,
|
|
raid: Option<Raid>,
|
|
size: String,
|
|
extents: String,
|
|
}
|
|
|
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
|
pub struct LvmPV {
|
|
n: i16,
|
|
regexps: Vec<String>,
|
|
}
|
|
|
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
|
pub struct CryptDev {
|
|
dev: String,
|
|
prefix: String,
|
|
name: String,
|
|
}
|
|
|
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
|
pub struct Raid {
|
|
mirrors: u8,
|
|
stripes: u8,
|
|
}
|
|
|
|
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
|
pub struct Bootstrap {
|
|
dev: String,
|
|
seed: String,
|
|
}
|