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连接
 

 

 

 

 
 
界面长这样
 
 

 

 

 
 
 
这里我们要更改xfs文件格式变成ext4,直接点完成
 

 

 

 
 
 
 
分区结束
 
配置网络IP
 
 

 

 

 

 

 
 
 
让网卡开机自启,然后点完成
 

 

开始安装
 

 

设置root密码
 

 

设置密码:venic8888,然后点2次完成(因为密码太弱,它会提示2次完成)
 

 

等它安装完毕

 

 

 

 
 
安装 完成 后,宿 主机会把其关机,我们需要在宿主机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: 0
ssh_pwauth:   1
 
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
 
 
 
 
 
 
都安装一些基础包
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地址是否相同,测试调整云主机大小是否自动扩容根分区无需人工介入等等,迁移后是否正常。
posted @ 2017-01-15 13:49  veniceslove  阅读(1304)  评论(0编辑  收藏  举报