如何在CentOS 5.x 中安装Windows Azure Linux Agent (WALA)

Qing Liu  Tue, Mar 10 2015 3:06 AM  

在今天的这一个章节中,我们主要讨论在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 主要步骤和区别如下,

  1. 需要手工安装Python 2.6 以上版本
  2. 需要手工安装python-pyasn1
  3. 需要修改resource disk 类型为ext3
  4. 需要手工安装WALA (waagent -install)

准备 CentOS 5.x 客户虚拟机,您必须在本地有HyperV 功能的操作系统中完成特定的配置步骤才能使虚拟机在 Azure 中运行,如Windows 8.0 or Windows 2008 R2 或以上版本的Windows 操作系统

  1. 在 Hyper-V 管理器中,选择已经通过ISO镜像安装完成的虚拟机

  2. 单击 “连接” 以打开虚拟机窗口。使用root账号登录系统

  3. 通过运行以下命令卸载 NetworkManager

      # yum remove NetworkManager
    

    注意:如果未安装此包,则该命令将失败,并显示一条错误消息。这是正常情况。

  4. 在 /etc/sysconfig/ 目录中创建一个名为 network 的文件,该文件包含以下文本:

      NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=localhost.localdomain
    
  5. 在 /etc/sysconfig/network-scripts/ 目录中创建一个名为 ifcfg-eth0 的文件,该文件包含以下文本: 

      DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
    
  6. 移动(或删除)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/
    
  7. 通过运行以下命令,确保网络服务将在引导时启动:

      # chkconfig network on
    
  8. 安装适用于 Linux Integration Services 的驱动程序 , 注意此处5.5 、5.6 、5.7、5.8 需要安装相应版本的LIS, 5.9、5.10可以省略,发行版本中已经包含了相应的LIS 驱动程序

  9. 将下列行添加到 /etc/yum.conf

      http_caching=packages
    
  10. 通过编辑文件“/etc/yum/pluginconf.d/fastestmirror.conf”禁用 yum 模块“fastestmirror”,并在 [main] 下面键入以下内容

      set enabled=0
    
  11. 运行以下命令以便清除当前 yum 本地库

      # yum clean all
    
  12. 对于 CentOS  5.x,通过运行以下命令更新正在运行的虚拟机的内核

      # yum --disableexcludes=all install kernel
    
  13. 在 grub 配置中修改内核引导行,以使其包含 Azure 的其他内核参数。若要执行此操作,请在文本编辑器中打开 /boot/grub/menu.lst,并确保默认内核包含以下参数:

     console=ttyS0 earlyprintk=ttyS0 rootdelay=300 numa=off 
    
  14. 安装编译器环境

      # yum install gcc zlib-devel python-setuptools readline-devel 
    
  15. 下载,解压,编译,安装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
    
  16. 建立sbin 硬连接

      # ln -s /usr/local/bin/python2.7 /usr/sbin/python
    
  17. 下载,解压,安装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"
    
  18. 复制python-pyasn1的安装包到2.7.8的site-package内

      # cp -avr /usr/lib/python2.4/site-packages/pyasn1 /usr/local/lib/python2.7/site-packages/pyasn1 
    
  19. 下载,安装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 
    
  20. 清除/tmp下的文件

      # cd / # rm -Rf /tmp # mkdir /tmp 
    
  21. 不要在 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. 
    
  22. 重新启动Linux VM, 用root账号登录系统,执行deprovision

      # waagent -force -deprovision # export HISTSIZE=0 # logout
    
  23. 关闭虚拟机,上传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 完成虚拟机的建立。

如果你有任何疑问,欢迎访问MSDN社区,由专家来为您解答Windows Azure各种技术问题,或者拨打世纪互联客户服务热线400-089-0365/010-84563652咨询各类服务信息。

本文转载自:https://blogs.msdn.com/b/cciccat/archive/2015/03/10/centos-5-x-windows-azure-linux-agent-wala.aspx