批量创建KVM虚拟机与批量推公钥的shell脚本
2017-11-07 14:55
369 查看
本文将带你利用shell脚本在Linux系统批量创建KVM虚拟机以及批量推公钥。
#!/bin/bash #kvm manager #abel work_dir=`pwd` images_dir=/var/lib/libvirt/images xml_dir=/etc/libvirt/qemu red_col="\e[1;31m" blue_col="\e[1;34m" reset_col="\e[0m" centos6_base_img=$work_dir/centos6/rhel6.qcow2 centos7_base_img=$work_dir/centos7/centos7.qcow2 menu() { cat <<-EOF +------------------------------------------------+ | | | ======================| | 虚拟机基本管理centos| | ======================| | 1. 安装虚拟机 | | 2. 删除所有虚拟机 | | 3. 创建虚拟机centos6| | 4. 创建虚拟机centos7| | q. 退出管理程序 | | | +------------------------------------------------+ EOF } ;; 3) read -p "请输入创建虚拟机的名字: " centos6 read -p "请输入创建虚拟机的数量: " vm_num for i in `seq $vm_num` do vm_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/null cp -rf $work_dir/centos6/rhel6.xml /$xml_dir/${vm_name}.xml sed -ri "s/vm_name/$vm_name/" /$xml_dir/${vm_name}.xml sed -ri "s/vm_uuid/$vm_uuid/" /$xml_dir/${vm_name}.xml sed -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/null echo "虚拟机${vm_name}重置完成..." done ;; 4) read -p "请输入创建虚拟机的名字: " centos7 read -p "请输入创建虚拟机的数量: " vm_num for i in `seq $vm_num` do vm_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/null cp -rf $work_dir/centos7/centos7.xml /$xml_dir/${vm_name}.xml sed -ri "s/vm_name/$vm_name/" /$xml_dir/${vm_name}.xml sed -ri "s/vm_uuid/$vm_uuid/" /$xml_dir/${vm_name}.xml sed -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/null echo "虚拟机${vm_name}重置完成..." done ;; m) clear menu ;; q) exit ;; '') ;; *) echo "输入错误!" read -p "请选择相应的操作[1-4]: " choice esac done #################批量推公钥################## #!/bin/bash #abel >ip.txt >/root/.ssh/known_hosts if [ ! -f ~/.ssh/id_rsa.pub ];then ssh-keygen -P "" -f ~/.ssh/id_rsa exit fi yum -y install expect for i in {2..254} do { ip=192.168.122.$i ping -c1 -W1 $ip &>/dev/null if [ $? -eq 0 ];then echo $ip >> ip.txt /usr/bin/expect <<-EOF set timeout 10 spawn ssh-copy-id -i $ip expect { "*yes/no" { send "yes\r"; exp_continue} "*password:" { send "centos\r" } } expect "#" send "exit\r" expect eof EOF fi }& done wait echo "finish...."
相关文章推荐
- Shell脚本批量创建用户并随机生成密码
- 用Shell脚本创建批量用户
- Shell脚本批量创建用户并随机生成密码
- shell脚本:批量创建多个子目录及二级子目录
- shell脚本-从用户列表里批量创建或…
- shell脚本创建用户及批量创建用户
- shell脚本第一篇——自定义创建用户和批量创建用户
- shell脚本批量创建用户,并指定随机密码
- shell脚本批量创建用户
- Shell脚本批量创建用户并随机生成密码
- 用shell脚本批量分发公钥,实现用…
- 【shell脚本】批量创建和删除用户
- 通过linux的shell脚本批量创建用户名,用户名所属目录,设置对应密码
- 通过linux的shell脚本批量创建用户名,用户名所属目录,设置对应密码
- shell 脚本(批量创建脚本)
- [工具] 分布式系统下批量创建用户及分发公钥打通ssh通道的脚本
- Shell脚本批量创建用户并随机生成密码
- 通过Shell脚本将VSS项目批量创建并且提交迁移至Gitlab
- shell脚本来批量创建和删除数据库
- shell 脚本 批量创建用户密码随机