openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】

之所以要只有根分区镜像,是因为在创建VM或者调整云主机的硬盘大小时,它能自动扩容。无需人工介入
 
在原来的物理机10.40.41.1的CentOS 6.7上制作镜像。(当然如果你的制作镜像的宿主机是CentOS7也是一样的)
宿主机坱要安装KVM相关软件:
yum groupinstall Virtualization "Virtualization Client" -y
yum install libvirt libguestfs-tools qemu virt-manager virt-viewer qemu-kvm virt-install bridge-utils -y
service libvirtd start
chkconfig libvirtd on
 
材料有
CentOS-7-x86_64-DVD-1503-01.iso-----CentOS官网上有得下载 1503代表的是7.1版   1511是7.2版本
 
上传至10.40.41.1的物理机上的/home目录下
 
10.40.41.1所在的网段不一定要先配DHCP。
 
在10.40.41.1上
mkdir /mnt/sdd1/CentOS7-1
cd /mnt/sdd1/CentOS7-1
qemu-img create -f qcow2 CentOS7-1.qcow2 20G
 
传统KVM创建虚拟机命令
CentOS6.7宿主机上的执行命令
virt-install --name=Centos7-1 --ram=4096 --vcpus=2 --disk path=/mnt/sdd1/CentOS7-1/CentOS7-1.qcow2,format=qcow2,device=disk,bus=virtio  --os-type=linux --accelerate --network bridge=kvmbr0,model=e1000  --location=/home/CentOS-7-x86_64-DVD-1503-01.iso --vnc --vncport=5951 --vnclisten=0.0.0.0
 
CentOS7.2宿主机上的执行命令
virt-install --name test-centos7 --ram 4096 --vcpus 2 --network bridge=kvmbr0 --disk=/mnt/sde1/test/test.raw,size=20 --location=/home/CentOS-7-x86_64-DVD-1511.iso  --graphics vnc,listen=0.0.0.0,port=5901  --noautoconsole 
 
在win7的电脑上使用VNC连接
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】

openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】

openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】

openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 
界面长这样
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】

openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】

 openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】

openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】

 
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 
这里我们要更改xfs文件格式变成ext4,直接点完成
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 
 
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 
分区结束
 
配置网络IP
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 
 openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】

openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】

openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 
 
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 
让网卡开机自启,然后点完成
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
开始安装
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
设置root密码
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
设置密码:venic8888,然后点2次完成(因为密码太弱,它会提示2次完成)
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
等它安装完毕
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】

openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】

openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】
 
 
安装 完成 后,宿 主机会把其关机,我们需要在宿主机10.40.41.1上再将其打开
virsh start Centos7-1
 
接下来我们直接ssh上这台服务器
 
ssh 10.40.41.161
 
 
 
vi /etc/ssh/sshd_config,修改以下2处配置
 
UseDNS no
GSSAPIAuthentication no
 
vi /etc/ssh/ssh_config 修改1处,加2行,添加禁止加host_know和认证
        GSSAPIAuthentication no
        StrictHostKeyChecking no
        UserKnownHostsFile /dev/null
 
 
保存退出,重启ssh
service sshd restart
 
 
由于我们是使用VNC安装,console界面默认没有开启,虽然openstack使用的是VNC连接,但它的开机的console 日志我们是需要记录看到的。所以我们把它开起来
 
vi /etc/default/grub
 
GRUB_CMDLINE_LINUX="console=ttyS0,115200"
 
启用并刷新grub
grub2-mkconfig -o /boot/grub2/grub.cfg
 
设置2张网卡为dhcp并onboot=yes,使得虚拟机能自动获取IP地址;(本来一张网卡就足句,但为了适应将来可能会有2个网段的架机,我们配2张以将来不时之需)
 
 
vi /etc/sysconfig/network-scripts/ifcfg-eth0
 
TYPE=Ethernet
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
NM_CONTROLLED=no
NOZERCONF=yes
 
vi /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=dhcp
NM_CONTROLLED=no
NOZERCONF=yes
 
 
删除我们一开始系统读到的ens3网卡配置,是它读宿主机的网卡信息得到的。当前留着也不会影响,我习惯把它删掉,但下次再将这台虚拟机从这台宿主机启动时,还要再把它配回来,不然后它没有网络
rm -rf /etc/sysconfig/network-scripts/ifcfg-ens3
 
操作完不用重启网卡
 
 
 
查看SELinux状态:
/usr/sbin/sestatus -v
SELinux status: enabled
enabled表示SELinux为开启状态
关闭SELinux:
vi /etc/selinux/config
设置"SELINUX=disabled"。
 
 
查看和关闭firewalld
最新的CentOS7/REHL7防火墙已经更新为firewalld。不是iptables
 
systemctl stop firewalld.service        #停止firewall
systemctl disable firewalld.service    #禁止firewall开机启动
 
 
关闭NetworkManager功能
service NetworkManager stop
chkconfig NetworkManager off
yum remove NetworkManager -y
 
5.安装cloud-init以远程访问:
安装EPEL库
 
这个7-8的版本将来会随着时间推移而更新而打不开链接,哪果将来有谁做镜像时发现这个链接404时,可以先访问 http://dl.fedoraproject.org/pub/epel/7/x86_64/e/先上去看看版本多少,将链接复制下来即可。
 
接着安装cloud-init和parted 和acpid
 
yum install cloud-utils cloud-init parted acpid -y
 
让电源开关acpid开机自启
systemctl enable acpid
 
 
清空 /etc/udev/rules.d/70-persistent-ipoib.rules 文件中的内容,清网卡生成信息,
echo > /etc/udev/rules.d/70-persistent-ipoib.rules
 
修改元数据在启动下的下发配置,以下贴出生产环境的全部配置。部分是修改过的,比如允许root登录,注入DNS服务器地址等等
vi /etc/cloud/cloud.cfg
users:
 - default
 
disable_root:
ssh_pwauth:   
 
locale_configfile: /etc/sysconfig/i18n
mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2']
resize_rootfs_tmp: /dev
ssh_deletekeys:   0
ssh_genkeytypes:  ~
syslog_fix_perms: ~
 
cloud_init_modules:
 - migrator
 - bootcmd
 - write-files
 - growpart
 - resizefs
 - set_hostname
 - rsyslog
 - users-groups
 - resolv-conf
 
cloud_config_modules:
 - mounts
 - locale
 - set-passwords
 - yum-add-repo
 - package-update-upgrade-install
 - timezone
 - puppet
 - chef
 - salt-minion
 - mcollective
 - disable-ec2-metadata
 - runcmd
 
cloud_final_modules:
 - rightscale_userdata
 - scripts-per-once
 - scripts-per-boot
 - scripts-per-instance
 - scripts-user
 - ssh-authkey-fingerprints
 - keys-to-console
 - phone-home
 - final-message
 
system_info:
  default_user:
    name: centos
    lock_passwd: true
    gecos: Cloud User
    groups: [wheel, adm, systemd-journal]
    sudo: ["ALL=(ALL) NOPASSWD:ALL"]
    shell: /bin/bash
  distro: rhel
  paths:
    cloud_dir: /var/lib/cloud
    templates_dir: /etc/cloud/templates
  ssh_svcname: sshd
 
# vim:syntax=yaml
 
 
 
 
都安装一些基础包
yum install -y telnet chrony zip unzip ntp lsof net-tools
建议更新一下GCC和openssl软件,因为服务器如果对外的话,低版本的openssl的攻击的太常见了,
yum install -y gcc gcc-c++ pcre pcre-devel openssl openssl-devel
还有zabbix-agent和salt-minion等等
设置chrony时钟同步服务器,让其开机自启
 
另外一些linux内核特性的配置和文件句柄ulimit的优化,可以参考《linux学习》笔记中的<镜像制作注意点(已迭代到镜像的第4版本)>
 
 
 
(9)在宿主机上关机: virsh destroy Centos7-1
善后操作
 
(1)再次清除网络相关硬件生成信息 virt-sysprep -d Centos7-1
(2)压缩镜像 virt-sparsify --compress CentOS7-1.qcow2 CentOS7-1-cloud.qcow2
镜像制作到此结束,将压缩后的镜像上传去openstack平台测试开机2台,是否正常访问外网,MAC地址是否相同,测试调整云主机大小是否自动扩容根分区无需人工介入等等,迁移后是否正常。
上一篇:java中的线程(1):如何正确停止线程Why Are Thread.stop, Thread.suspend, Thread.resume and Runtime.runFinalizersOnExit Deprecated?


下一篇:navicat链接阿里云mysql报80070007: SSH Tunnel: Server does not support diffie-hellman-group1-sha1 for keyexchange