如何在CentOS 5.x 中安装Windows Azure Linux Agent (WALA)
在今天的这一个章节中,我们主要讨论在CentOs 5.x 中如何安装Windows Azure Linux Agent 2.11 (简称WALA)。如果你是需要对CentOS 6.x 发行版本进行Windows Azure 基本镜像进行配置,请参考Azure 中文官网 "创建并上传包含 Linux 操作系统的虚拟硬盘"
对应6.x 的相关步骤,在CentOS 5.x中进行Windows Azure Linux Agent 主要步骤和区别如下,
- 需要手工安装Python 2.6 以上版本
- 需要手工安装python-pyasn1
- 需要修改resource disk 类型为ext3
- 需要手工安装WALA (waagent -install)
准备 CentOS 5.x 客户虚拟机,您必须在本地有HyperV 功能的操作系统中完成特定的配置步骤才能使虚拟机在 Azure 中运行,如Windows 8.0 or Windows 2008 R2 或以上版本的Windows 操作系统
在 Hyper-V 管理器中,选择已经通过ISO镜像安装完成的虚拟机
单击 “连接” 以打开虚拟机窗口。使用root账号登录系统
通过运行以下命令卸载 NetworkManager
# yum remove NetworkManager
注意:如果未安装此包,则该命令将失败,并显示一条错误消息。这是正常情况。
在
/etc/sysconfig/
目录中创建一个名为 network 的文件,该文件包含以下文本:NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=localhost.localdomain
在
/etc/sysconfig/network-scripts/
目录中创建一个名为 ifcfg-eth0 的文件,该文件包含以下文本:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
移动(或删除)udev 规则,以避免产生以太网接口的静态规则。在 Windows Azure 或 Hyper-V 中克隆虚拟机时,这些规则会引发问题
# mkdir -m 0700 /var/lib/waagent # mv /lib/udev/rules.d/75-persistent-net-generator.rules /var/lib/waagent/ # mv /etc/udev/rules.d/70-persistent-net.rules /var/lib/waagent/
通过运行以下命令,确保网络服务将在引导时启动:
# chkconfig network on
安装适用于 Linux Integration Services 的驱动程序 , 注意此处5.5 、5.6 、5.7、5.8 需要安装相应版本的LIS, 5.9、5.10可以省略,发行版本中已经包含了相应的LIS 驱动程序
将下列行添加到 /etc/yum.conf
http_caching=packages
通过编辑文件“/etc/yum/pluginconf.d/fastestmirror.conf”禁用 yum 模块“fastestmirror”,并在 [main] 下面键入以下内容
set enabled=0
运行以下命令以便清除当前 yum 本地库
# yum clean all
对于 CentOS 5.x,通过运行以下命令更新正在运行的虚拟机的内核
# yum --disableexcludes=all install kernel
在 grub 配置中修改内核引导行,以使其包含 Azure 的其他内核参数。若要执行此操作,请在文本编辑器中打开 /boot/grub/menu.lst,并确保默认内核包含以下参数:
console=ttyS0 earlyprintk=ttyS0 rootdelay=300 numa=off
安装编译器环境
# yum install gcc zlib-devel python-setuptools readline-devel
下载,解压,编译,安装Python 2.6 以上版本。在本例中使用了2.7.8。
# cd / # mkdir /tmp # wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz # tar -xzvf Python-2.7.8.tgz # cd Python-2.7.8 # ./configure # make altinstall
建立sbin 硬连接
# ln -s /usr/local/bin/python2.7 /usr/sbin/python
下载,解压,安装python-pyasn1
# cd /tmp # wget https://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/python-pyasn1-0.0.12a-1.el5.rf.noarch.rpm # rpm -ivh python-pyasn1-0.0.12a-1.el5.rf.noarch.rpm # rpm -qa|grep "python"
复制python-pyasn1的安装包到2.7.8的site-package内
# cp -avr /usr/lib/python2.4/site-packages/pyasn1 /usr/local/lib/python2.7/site-packages/pyasn1
下载,安装Windows Azure Linux Agent
# cd /tmp # wget https://raw.githubusercontent.com/Azure/WALinuxAgent/WALinuxAgent-2.0.11/waagent --no-check-certificate # chmod +x waagent # cp waagent /usr/sbin # cd /usr/sbin # waagent -install
清除/tmp下的文件
# cd / # rm -Rf /tmp # mkdir /tmp
不要在 OS 磁盘上创建交换空间。Azure Linux 代理可使用在 Azure 上设置后附加到虚拟机的本地资源磁盘自动配置交换空间。在安装 Azure Linux 代理(请参见步骤19)后,相应地在 /etc/waagent.conf 中修改以下参数:
ResourceDisk.Format=y ResourceDisk.Filesystem=ext3 ResourceDisk.MountPoint=/mnt/resource ResourceDisk.EnableSwap=y ResourceDisk.SwapSizeMB=4096 ## NOTE: set this to whatever you need it to be.
重新启动Linux VM, 用root账号登录系统,执行deprovision
# waagent -force -deprovision # export HISTSIZE=0 # logout
关闭虚拟机,上传VHD 到Windows Azure 块存储中, 可以使用Add-AzureVHD
PS C:\> Add-AzureVhd -Destination https://mytestaccount.blob.core.windows.net/vhdstore/centos53image.vhd -LocalFilePath C:\vhd\centos53image.vhd -NumberOfThreads 32
最后可以参考 Create and upload a Linux VHD in Azure 完成虚拟机的建立。