ImageFactory的安装分为两种方式:RPM包安装和源代码安装。我们选择通过源代码安装。
ImageFactory运行于Linux系统之上,所以安装ImageFactory之前首先要安装一个Linux操作系统,然后在Linux系统上部署ImageFactory。具体步骤如下:
一、基本Linux系统
(1)开启物理服务器CPU虚拟化技术,服务器最低2G内存,建议4G以上内存;
(2)在服务器上安装Linux操作系统,本次安装的发行版本为64位CentOS6.5系统;
(3)配置Linux系统的网络及防火墙,使之能够访问互联网;
(4)配置Linux系统的YUM源:CentOS源+EPEL源
# cd /etc/yum.repos.d/ # wget http://mirrors.163.com/.help/CentOS6-Base-163.repo # rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
(5)安装ImageFactory依赖的软件包;
# yum install oz libvirt genisoimage mtools openssh-clients python-oauth2 python-libparted m2crypto pyparted ovirt-engine-sdk euca2ools python-boto python-psphere python-glanceclient python-libxml2
Note:不同环境下某些依赖库文件可能安装不全,在执行imagefactory命令时,如果提示某些module加载失败,可使用“yum provides "*/module名"”命令查找对应软件包,手动安装即可。
二、安装ImageFactory
(6)使用git命令克隆github上的ImageFactory源代码到本地,通过源代码安装软件;
# git clone git://github.com/aeolusproject/imagefactory.git # cd imagefactory # git checkout origin/feature/1.1.5_release #切换到最新stable版本 # python ./setup.py sdist install # cd imagefactory_plugins # python ./setup.py sdist install # mkdir /etc/imagefactory/plugins.d # cd /etc/imagefactory/plugins.d # for PLUGIN in `ls /usr/lib/python2.6/site-packages/imagefactory_plugins | grep -v .py` do sudo ln -s -v /usr/lib/python2.6/site-packages/imagefactory_plugins/$PLUGIN/$PLUGIN.info ./$PLUGIN.info done
(7)修改配置文件,打开debug信息(默认0为关闭,修改为1)
# vi /etc/imagefactory/imagefactory.conf "debug": 1,
(8)删除无效文件
# rm -rf /etc/imagefactory/plugins.d/ovfcommon.info
(9)启动服务,并设置服务随系统启动
# service imagefactoryd start # chkconfig imagefactoryd on
三、使用ImageFactory
(10)使用ImageFactory为openstack制作镜像文件并上传
(10.1)准备模板文件rhel6-2.tdl
<template> <name>RHEL 6.2 Template</name> <os> <name>RHEL-6</name> <version>2</version> <arch>x86_64</arch> <install type='url'> <url>http://192.168.0.100/rhel-6.2/</url> </install> <rootpw>abc123</rootpw> </os> </template>
install type有两种:url或iso。
此处url所指路径存放了rhel6.2的安装文件(安装光盘挂载到rhel-6.2目录)
(10.2)制作镜像文件
# imagefactory target_image --template rhel6-2.tdl openstack-kvm
(10.3)准备provider.json和credentials.xml配置文件
# vi provider.json { "glance-host": "192.168.0.200", "glance-port": 9292 }
# vi credentials.xml <provider_credentials> <openstack_credentials> <username>admin</username> <tenant>admin</tenant> <password>abc123</password> <strategy>keystone</strategy> <auth_url>http://192.168.0.200:5000/v2.0</auth_url> </openstack_credentials> </provider_credentials>
Note:openstack环境配置方法不再赘述,该环境中openstack环境已经配置完成,openstack manager节点IP地址192.168.0.200,admin tenant的管理员账号密码为admin/abc123。
(10.4)上传镜像文件
# imagefactory provider_image --id UUID openstack-kvm provider.json credentials.xml
Note:此处的UUID为(10.2)中制作完成的target_image的UUID。
(11)使用ImageFactory为RedHatEnterpriseVirtualization制作镜像文件并上传
(11.1)准备模板文件rhel6-2.tdl
<template> <name>RHEL 6.2 Template</name> <os> <name>RHEL-6</name> <version>2</version> <arch>x86_64</arch> <install type='url'> <url>http://192.168.0.100/rhel-6.2/</url> </install> <rootpw>abc123</rootpw> </os> </template>
(11.2)制作镜像文件
# imagefactory target_image --template rhel6-2.tdl rhevm
(10.3)准备provider.json和credentials.xml配置文件
# vi provider.json { "api-url": "https://192.168.0.100:443/api", "username": "admin@internal", #访问rhevm环境的账号 "password": "abc123", #密码 "nfs-path": "/export/export", #rhevm环境中导出域的nfs共享路径 "nfs-dir": "/mnt/rhevm", #imagefactory主机上的挂载点 "nfs-host": "192.168.0.100", #rhevm环境中导出域的nfs共享主机IP "cluster": "_any_", "timeout": 1800 }
# vi credentials.xml <provider_credentials> <rhevm_credentials> <username>admin@internal</username> <password>abc123</password> </rhevm_credentials> </provider_credentials>
Note:rhevm环境配置方法不再赘述,该环境中rhevm环境已经配置完成,rhev manager节点IP地址192.168.0.100,管理员账号密码为admin@internal/abc123。
(10.4)imagefactory需要将制作好的镜像文件上传到rhevm环境中的导出域中,在执行命令上传镜像前,需要将rhevm导出域的nfs共享挂载到imagefactory主机上(该命令在imagefactory主机上执行)
# mkdir /mnt/rhevm # mount 192.168.0.100:/export/export /mnt/rhevm
(10.5)上传镜像文件
# imagefactory provider_image --id UUID rhevm provider.json credentials.xml
Note:此处的UUID为(11.2)中制作完成的target_image的UUID。
OK,关于imagefactory的安装、配置及基本使用就介绍到这。。。。