批量创建KVM虚拟机与批量推公钥的shell脚本

来源:互联网 发布:淘宝大c家是正品吗 编辑:程序博客网 时间:2024/05/19 06:17

本文将带你利用shell脚本在Linux系统批量创建KVM虚拟机以及批量推公钥。

#!/bin/bash#kvm manager#abelwork_dir=`pwd`images_dir=/var/lib/libvirt/imagesxml_dir=/etc/libvirt/qemured_col="\e[1;31m"blue_col="\e[1;34m"reset_col="\e[0m"centos6_base_img=$work_dir/centos6/rhel6.qcow2centos7_base_img=$work_dir/centos7/centos7.qcow2menu() {cat <<-EOF+------------------------------------------------+| || ======================||  虚拟机基本管理centos|| ======================|| 1. 安装虚拟机 | | 2. 删除所有虚拟机 | | 3. 创建虚拟机centos6|| 4. 创建虚拟机centos7|| q. 退出管理程序 | | |+------------------------------------------------+ EOF};;3)read -p "请输入创建虚拟机的名字: " centos6read -p "请输入创建虚拟机的数量: " vm_numfor i in `seq $vm_num`dovm_name=$centos6-${i}vm_uuid=$(uuidgen)vm_mac="52:54:$(dd if=/dev/urandom count=1 2>/dev/null | md5sum \| sed -r 's/^(..)(..)(..)(..).*$/\1:\2:\3:\4/')"vm_img=$images_dir/${vm_name}.qcow2        qemu-img create -f qcow2 -b ${centos6_base_img} $vm_img &>/dev/nullcp -rf $work_dir/centos6/rhel6.xml /$xml_dir/${vm_name}.xmlsed -ri "s/vm_name/$vm_name/" /$xml_dir/${vm_name}.xml sed -ri "s/vm_uuid/$vm_uuid/" /$xml_dir/${vm_name}.xmlsed -ri "s/vm_mac/$vm_mac/" /$xml_dir/${vm_name}.xml  sed -ri "s#vm_img#$vm_img#" /$xml_dir/${vm_name}.xml        virsh define /$xml_dir/${vm_name}.xml &>/dev/nullecho "虚拟机${vm_name}重置完成..."done;;4)read -p "请输入创建虚拟机的名字: " centos7read -p "请输入创建虚拟机的数量: " vm_numfor i in `seq $vm_num`dovm_name=$centos7-${i}vm_uuid=$(uuidgen)vm_mac="52:54:$(dd if=/dev/urandom count=1 2>/dev/null | md5sum \| sed -r 's/^(..)(..)(..)(..).*$/\1:\2:\3:\4/')"vm_img=$images_dir/${vm_name}.qcow2        qemu-img create -f qcow2 -b ${centos7_base_img} $vm_img &>/dev/nullcp -rf $work_dir/centos7/centos7.xml /$xml_dir/${vm_name}.xmlsed -ri "s/vm_name/$vm_name/" /$xml_dir/${vm_name}.xml sed -ri "s/vm_uuid/$vm_uuid/" /$xml_dir/${vm_name}.xmlsed -ri "s/vm_mac/$vm_mac/" /$xml_dir/${vm_name}.xml  sed -ri "s#vm_img#$vm_img#" /$xml_dir/${vm_name}.xml        virsh define /$xml_dir/${vm_name}.xml &>/dev/nullecho "虚拟机${vm_name}重置完成..."done;;m)clearmenu;;q)exit;;'');;*)echo "输入错误!"read -p "请选择相应的操作[1-4]: " choiceesacdone#################批量推公钥###################!/bin/bash#abel>ip.txt>/root/.ssh/known_hostsif [ ! -f ~/.ssh/id_rsa.pub ];then        ssh-keygen -P "" -f ~/.ssh/id_rsa        exitfiyum -y install expectfor i in {2..254}do{ip=192.168.122.$iping -c1 -W1 $ip &>/dev/nullif [ $? -eq 0 ];thenecho $ip >> ip.txt/usr/bin/expect <<-EOFset timeout 10spawn ssh-copy-id -i $ipexpect {"*yes/no" { send "yes\r"; exp_continue}"*password:" { send "centos\r" }}expect "#"send "exit\r"expect eofEOFfi}&donewait echo "finish...."
 
原创粉丝点击