diff options
Diffstat (limited to 'src/bin/tool.rs')
-rw-r--r-- | src/bin/tool.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/bin/tool.rs b/src/bin/tool.rs new file mode 100644 index 0000000..18a5c19 --- /dev/null +++ b/src/bin/tool.rs @@ -0,0 +1,27 @@ +use std::path::PathBuf; + +use vmadm::cloudinit::CloudInitConfig; +use vmadm::image::VirtualMachineImage; +use vmadm::install::{virt_install, VirtInstallArgs}; + +const BASE_PATH: &'static str = "/home/liw/tmp/debian-10-openstack-amd64.qcow2"; +const IMAGE_PATH: &'static str = "/home/liw/tmp/try-vm.qcow2"; + +fn main() -> anyhow::Result<()> { + let mut init = CloudInitConfig::default(); + init.set_hostname("toy-vm"); + init.set_authorized_keys("xxx liw-openpgp xxx"); + println!("init: {:#?}", init); + + let base = PathBuf::from(BASE_PATH); + let image = PathBuf::from(IMAGE_PATH); + let image = VirtualMachineImage::new_from_base(&base, &image)?; + image.resize(1024 * 1024 * 1024 * 10)?; + + let args = VirtInstallArgs::new("toy-vm", &image, &init); + println!("{:#?}", args); + virt_install(&args)?; + println!("OK"); + + Ok(()) +} |