之所以要只有根分区镜像,是因为在创建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库
接着安装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地址是否相同,测试调整云主机大小是否自动扩容根分区无需人工介入等等,迁移后是否正常。
- openstack私有云布署实践【16.2 Ubuntu1404 只有根分区镜像制作】
之所以要只有根分区镜像,是因为在创建VM或者调整云主机的硬盘大小时,它能自动扩容.无需人工介入 在原来的物理机10.40.41.1的CentOS 6.7上制作镜像. 宿主机坱要安装KVM相关软件: ...
- openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
之所以要只有C盘分区镜像,是因为在创建VM或者调整云主机的硬盘大小时,它能自动扩容.无需人工介入 参考http://www.iyunv.com/thread-45149-1-1.html的灵感 ...
- openstack私有云布署实践【12.2 网络Neutron-controller节点配置(办公网环境)】
网络这一块推荐使用的是 Neutron--LinuxBirdge的Ha高可用,此高可用方案对Public作用不是很大,Public只用到DHCP,而Private则会用到L3 Agent,则此方案是有 ...
- openstack私有云布署实践【12.1 网络Neutron-controller节点配置(科兴环境)】
网络这一块推荐使用的是 Neutron--LinuxBirdge的Ha高可用,此高可用方案对Public作用不是很大,Public只用到DHCP,而Private则会用到L3 Agent,则此方案是有 ...
- openstack私有云布署实践【0 前言】
管理控制层面示图: 其实在修改这个布署文档是,我发现当时生产中的布署已经严重偏离了openstack高可用的指导思想.我们自己实践的高可用其实是适应自己的架构而做的调整,因为我们现实手头上中没有比较符 ...
- openstack私有云布署实践【9.3 主从controller单向同步glance-image目录】
采用Rysnc单向同步,而不用双方实时同步,原因是在历史的运行过程中,我们发现,有些镜像包太大,当在主用的glance将镜像保存时,并不是一时半会就把镜像保存好,当主用在保存时,备用节点又在实时同步那 ...
- openstack私有云布署实践【15 创建租户网络+实例】
这里以办公网测试环境为例, (一)创建租户demo的网络 使用admin用户 source admin-openrc.sh 创建public公网 neutron net-create 1040 ...
- openstack私有云布署实践【19 通过python客户端 创建实例VM指定IP地址】
还有一种创建方式 是使用py开发工具,调用openstackclient的方法进行创建实例 ,好处就是可随意指定我们要的虚拟机IP地址,需求的场景就是,某天我们需要主动分配一个比较熟知的IP用作某个服 ...
- openstack私有云布署实践【11.3 计算nova - compute节点-nova用户免密登录(用于云主机冷迁移+扩展云主机大小)】
云主机迁移+扩展云主机大小 ,官方说它依赖nova用户之间的免密登录.确保每个resion区域的compute节点服务器他们可以相互SSH免密 compute1-7 他们相互SSH免密 k ...
随机推荐
- CSS3效果收集
收集一些 CSS3 效果 1. 闪烁字效果 原效果>>
- 常见sql语句
1.去最新插入表数据与当前时间差额 select *,(TIME_TO_SEC(SYSDATE())-TIME_TO_SEC(t.cre_time)) from t_sms_flow t where ...
- Java学习笔记-Thread-线程
//2015年5月5日16:55:00 //Main package com.alfredsun.thread; public class Main { public static void main ...
- github从上传代码到发布静态网站
1.上传代码 第一步:建立git仓库 cd到你的本地项目根目录下,执行git命令 git init 第二步:将项目的所有文件添加到仓库中 git add . 如果想添加某个特定的文件,只需把.换成特定 ...
- Tweak 中系统方法写入文件到根目录下面失败
Tweak 中系统方法写入文件到根目录下面失败 失败原因: Error Domain=NSCocoaErrorDomain Code=513 "The operation couldn’t ...
- class.forname()方法的学习(转)
Class.forName(xxx.xx.xx) 返回的是一个类 首先你要明白在java里面任何class都要装载在虚拟机上才能运行.这句话就是装载类用的(和new 不一样,要分清楚). 至于什么时候 ...
- 在ubuntu14.04上安装openstack mitaka
最近在工作环境安装部署了juno版本,在GE口测试网络性能不太满意,发现mitaka版本支持ovs-dpdk,于是抽时间安装实验一番. 参考官网的安装文档,先准备将mitaka版本安装好再配置ovs. ...
- 敏捷开发(七)- SCRUM评估会议
本文主要是为了检测你对SCRUM 评估会议的了解和使用程度, 通过本文你可以检测一下 1.你们的SCRUM 评估会议的过程和步骤 2.SCRUM 评估的输出结果一.会议目的 1 ...
- openstack私有云布署实践【10.1 计算nova - kxcontroller节点配置(科兴环境)】
一.首先登录kxcontroller1创建kx_nova数据库,并赋于远程和本地访问的权限. mysql -u root -p CREATE DATABASE kx_nova; GRANT ...
- HTTP 错误 404.8 - Not Found
HTTP 错误 404.8 - Not Found请求筛选模块被配置为拒绝包含 hiddenSegment 节的 URL 中的路径. 详细错误信息模块 RequestFilteringModule 通 ...