add
This commit is contained in:
commit
f253346074
|
|
@ -0,0 +1,54 @@
|
|||
# virsh plugin
|
||||
|
||||
Aliases and some functions for virsh
|
||||
|
||||
```zsh
|
||||
plugins=(... virsh)
|
||||
```
|
||||
|
||||
Set default uri for libvirt server:
|
||||
```
|
||||
~/.zshrc
|
||||
export LIBVIRT_DEFAULT_URI="{qemu:///system}"
|
||||
```
|
||||
|
||||
## Aliases
|
||||
|
||||
| Alias | Command |
|
||||
| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `vl` | `virsh list` |
|
||||
| `vla` | `virsh list --all` |
|
||||
|
||||
## Functions
|
||||
|
||||
### Current
|
||||
|
||||
| Command | Description |
|
||||
| :----------------------- | :------------------------------------------------------------------------------------------------------------- |
|
||||
| `vs` | `virsh start {vm1} {vm2} {vm1} - starting pull vm` |
|
||||
| `vd` | `virsh destroy {vm1} {vm2} {vm1} - starting pull vm` |
|
||||
| `vsc` | `virsh snapshot-create {vm1} {vm2} {vm3} - starting pull vm` |
|
||||
| `vsr` | `virsh snapshot-revert {vm1} {vm2} {vm3} - starting pull vm` |
|
||||
| `ris` | `rewrite init snapshot, ris {vm1} {vm2} {vm3} - rewriting pull vm`
|
||||
|
||||
### Work in Progress (WIP)
|
||||
|
||||
TO-DO
|
||||
[x] - list machine
|
||||
[x] - destroy vm
|
||||
[x] - start vm
|
||||
[x] - destroy vms
|
||||
[x] - start vms
|
||||
[ ] - добавление дополнительного диска
|
||||
[x] - откат нескольких машин на снапшот
|
||||
[ ] - клонирование виртуальной машины
|
||||
[x] - создание снапшота на нескольких виртуальных машинах
|
||||
[ ] - добавление исошника в сдром
|
||||
[ ] - подключение к дисплею вм
|
||||
[ ] - подключение к терминалу вм
|
||||
[x] - сменить дефолтный ури
|
||||
[x] - автодополнения к функциям
|
||||
[ ] - вывод айпи адреса вм
|
||||
[x] - запоминание раннее введеного пула вм
|
||||
[ ] - вставка раннее введенного пула по хоткею (добавить в список табуляций)
|
||||
[ ] - удаления ВМ с хоста
|
||||
|
|
@ -0,0 +1 @@
|
|||
declare -a PULL_VMS=(suac)
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
alias vla="virsh list --all"
|
||||
alias vl="virsh list"
|
||||
|
||||
# Control LIBVIRT_DEFAULT_SESSION
|
||||
function chcon() {
|
||||
if [[ "$1" == "session" ]]; then
|
||||
sed 's/^\(export LIBVIRT_DEFAULT_URI=\).*/\1"qemu:\/\/\/session"/' $ZDOTDIR/zshrc; fi
|
||||
if [[ "$1" == "systen" ]]; then
|
||||
sed 's/^\(export LIBVIRT_DEFAULT_URI=\).*/\1"qemu:\/\/\/system"/' $ZDOTDIR/zshrc; fi
|
||||
if [[ "$1" == "virt" ]]; then
|
||||
sed 's/^\(export LIBVIRT_DEFAULT_URI=\).*/\1"qemu:\/\/virt\/system"/' $ZDOTDIR/zshrc; fi
|
||||
source $ZDOTDIR/zshrc
|
||||
}
|
||||
|
||||
# virsh start
|
||||
function vs() {
|
||||
if [[ "$1" = "latest" ]]; then
|
||||
source $ZSH/plugins/virsh/variables.zsh
|
||||
for VM in ${PULL_VMS[@]}; do
|
||||
virsh start $VM
|
||||
done
|
||||
else
|
||||
for VM in "$@"; do
|
||||
virsh start $VM
|
||||
done
|
||||
echo "declare -a PULL_VMS=($@)" > ~/.oh-my-zsh/plugins/virsh/variables.zsh
|
||||
fi
|
||||
}
|
||||
|
||||
# destroy
|
||||
function vd() {
|
||||
if [[ "$1" = "latest" ]]; then
|
||||
source $ZSH/plugins/virsh/variables.zsh
|
||||
for VM in ${PULL_VMS[@]}; do
|
||||
virsh destroy $VM
|
||||
done
|
||||
else
|
||||
for VM in "$@"; do
|
||||
virsh destroy $VM
|
||||
done
|
||||
echo "declare -a PULL_VMS=($@)" > ~/.oh-my-zsh/plugins/virsh/variables.zsh
|
||||
fi
|
||||
}
|
||||
|
||||
# snapshot-revert --current
|
||||
function vsr() {
|
||||
if [[ "$1" = "latest" ]]; then
|
||||
source $ZSH/plugins/virsh/variables.zsh
|
||||
for VM in ${PULL_VMS[@]}; do
|
||||
virsh snapshot-revert --current --domain $VM
|
||||
done
|
||||
else
|
||||
for VM in "$@"; do
|
||||
virsh snapshot-revert --current --domain $VM
|
||||
done
|
||||
echo "declare -a PULL_VMS=($@)" > ~/.oh-my-zsh/plugins/virsh/variables.zsh
|
||||
fi
|
||||
}
|
||||
|
||||
# snapshot-create
|
||||
function vsc() {
|
||||
if [[ "$1" = "latest" ]]; then
|
||||
source $ZSH/plugins/virsh/variables.zsh
|
||||
for VM in ${PULL_VMS[@]}; do
|
||||
echo $VM
|
||||
virsh snapshot-create-as --domain $VM --name "$(date +"%d-%m-%y-%H-%M")"
|
||||
done
|
||||
else
|
||||
for VM in "$@"; do
|
||||
virsh snapshot-create-as --domain $VM --name "$(date +"%d.%m.%y %H:%M")"
|
||||
done
|
||||
echo "declare -a PULL_VMS=($@)" > ~/.oh-my-zsh/plugins/virsh/variables.zsh
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
# rewrite init snapshot
|
||||
function ris() {
|
||||
if [[ "$1" = "latest" ]]; then
|
||||
source $ZSH/plugins/virsh/variables.zsh
|
||||
for VM in ${PULL_VMS[@]}; do
|
||||
echo $VM
|
||||
virsh snapshot-delete --domain $VM --snapshotname _init > /dev/null
|
||||
virsh snapshot-create-as --domain $VM --name "_init" > /dev/null
|
||||
echo "Снимок _init домена $VM перезаписан\n"
|
||||
done
|
||||
else
|
||||
for VM in "$@"; do
|
||||
virsh snapshot-delete --domain $VM --snapshotname _init > /dev/null
|
||||
virsh snapshot-create-as --domain $VM --name "_init" > /dev/null
|
||||
echo "Снимок _init домена $VM перезаписан\n"
|
||||
done
|
||||
echo "declare -a PULL_VMS=($@)" > ~/.oh-my-zsh/plugins/virsh/variables.zsh
|
||||
fi
|
||||
}
|
||||
|
||||
# autocomplitions
|
||||
function _domains_all {
|
||||
local -a domains
|
||||
domains=("${(@f)$(virsh list --all --name 2>/dev/null)}")
|
||||
domains=(${domains:#})
|
||||
(( $#domains )) && _describe -t domains 'libvirt domain' domains || _message 'Домены не найдены'
|
||||
}
|
||||
compdef _domains_all vs vsr vsc
|
||||
|
||||
function _domains_started {
|
||||
local -a domains
|
||||
domains=("${(@f)$(virsh list --name 2>/dev/null)}")
|
||||
domains=(${domains:#})
|
||||
(( $#domains )) && _describe -t domains 'libvirt domain' domains || _message 'Домены не найдены'
|
||||
}
|
||||
compdef _domains_started vd
|
||||
Loading…
Reference in New Issue