centos 7安装好KVM之后还要安装虚拟机,通过VNC连接手动安装centos 7虚拟机太麻烦了,所以无人值守安装是做好的。简单记录下。
无人值守安装centos 7前提是要安装KVM,并且能手动创建虚拟机。
首先创建centos7.ks.cfg文件 vi /root/centos7.ks.cfg
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | install #禁用第一次启动时设置系统的向导 firstboot --disabled eula --agreed reboot # 系统语言 lang en_US.UTF-8 keyboard us # 设置时区 timezone --isUtc Asia/Shanghai # 关闭selinux和防火墙 selinux --disabled firewall --disabled # 开启的服务 services --enabled=sshd,ntpd,ntpdate,network # 网络设置比较复杂,建议安装后再设置 # network --hostname pandora # 启动方式、自动分区 clearpart --all --initlabel bootloader --location=mbr autopart --type=lvm zerombr # root 密码为123@abc# auth --useshadow --enablemd5 rootpw --iscrypted $6$nLlYENVDvCsM/2SX$ZD6JgRkeuN1nW239DA53b33Yyl7j0MuAKCY/CKQ/YSdA3/6sBOqInIO67JJmssHb3HTCQLj4OlVfzwt7m8Bin0 #repo --name=base --baseurl=http://centos.mirrors.ovh.net/ftp.centos.org/7/os/x86_64 #url --url="http://centos.mirrors.ovh.net/ftp.centos.org/7/os/x86_64" # 最小化安装 %packages --nobase --ignoremissing @core #安装一些组件 acpid net-tools ntp ntpdate wget %end %post echo "ttyS0" >> /etc/securetty sed -i 's/1:2345:respawn:\/sbin\/mingetty tty1/co:2345:respawn:\/sbin\/agetty ttyS0 115200 vt100-nav/' /etc/inittab sed -i 's/^HISTSIZE=.*$/HISTSIZE=100/' /etc/profile # /etc/security/limits.conf [ -z "`cat /etc/security/limits.conf | grep 'nproc 65535'`" ] && cat >> /etc/security/limits.conf < <EOF * soft nproc 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535 EOF [ -z "`cat /etc/rc.local | grep 'ulimit -SH 65535'`" ] && echo "ulimit -SH 65535" >> /etc/rc.local [ -z "`cat ~/.bashrc | grep ^PS1`" ] && echo 'PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[35;40m\]\W\[\e[0m\]]\\$ "' >> /root/.bashrc # /etc/sysctl.conf sed -i 's/net.ipv4.tcp_syncookies.*$/net.ipv4.tcp_syncookies = 1/g' /etc/sysctl.conf [ -z "`cat /etc/sysctl.conf | grep 'fs.file-max'`" ] && cat >> /etc/sysctl.conf < < EOF fs.file-max=65535 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_max_tw_buckets = 6000 net.ipv4.route.gc_timeout = 100 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_synack_retries = 1 net.core.somaxconn = 65535 net.core.netdev_max_backlog = 262144 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_max_orphans = 262144 EOF %end |
关于配置里面的root的密码,首先看看python 的版本
1 2 | [root@pandora qemu]# python -V Python 2.7.5 |
python的版本大于2.7的,运行设置密码
1 | python -c 'import crypt,getpass; print(crypt.crypt(getpass.getpass(), crypt.mksalt(crypt.METHOD_SHA512)))' |
python的版本小于于2.7的,运行
1 | python -c 'import crypt; print crypt.crypt("CLEARTEXTPASSWORD", "$6$saltsalt$")' |
当然,直接用脚本配置里面的123@abc#的密码也可以,安装完后更改root密码
接着用virt-install安装虚拟机,就会自动按照centos7.ks.cfg的配置完成安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | virt-install \ --accelerate \ --name=centos7\ --hvm \ --virt-type kvm \ --boot hd \ --controller type=scsi,model=virtio-scsi \ --disk path=/home/data/centos7.qcow2,format=qcow2,size=300,sparse=true,cache=none,bus=scsi \ --network bridge:br0 \ --vcpus=8 --ram=16384 \ --os-type=linux \ --os-variant=rhel7 \ --graphics none \ --serial pty \ --console pty \ --location /home/iso/CentOS-7-x86_64-Minimal-1503-01.iso \ --initrd-inject /root/centos7.ks.cfg \ --extra-args "inst.ks=file:/centos7.ks.cfg console=ttyS0" |