使用httpd搭建内网yum源

背景

在使用CentOS时,由于众所周知的原因,在安装软件时总是会因为超市而导致安装失败的问题,尤其是在安装文件偏大的软件时,这种现象发生的异常频繁,常见的解决方法是:

  • 将Base Repo配置成阿里的yum源

    具体方法参看 Ali-OSM进行配置

  • 搭建梯子,科学上网

阿里的yum源虽然解决了大部分软件的安装问题,但它毕竟没有包罗万象,总是有一些软件是阿里源中没有的(如ambari); 而搭建梯子对于安装动辄上百兆的软件来说可以说是杯水车薪。因此,我们有必要搭建内网的yum源,方便软件的下载与版本的统一。这篇文章是我在使用Ambari的时候,由于安装hadoop集群时多个组件出现网络超时问题,搭建了一个内网hdp的yum源。

搭建准备

内网yum源的实质是在内网环境中,选择一台电脑搭建一个服务器,将下载好的压缩包解压到服务器的目录下,作为静态资源以供内网中的电脑进行访问。
本次搭建使用了三台虚拟机中的一台进行搭建。使用httpd作为服务器。

使用httpd搭建静态资源服务器

  1. 安装httpd

    1
    $ yum install -y httpd
  2. 配置

    1
    2
    3
    4
    5
    $ whereis httpd
    httpd: /usr/sbin/httpd /usr/lib64/httpd /etc/httpd /usr/share/httpd /usr/share/man/man8/httpd.8.gz
    $ vi /etc/httpd/conf/httpd.conf
    # port
    Listen 8081
  3. 启动

    1
    $ apachectl start
  4. 验证是否启动成功
    在浏览器中输入 http://{IP}:8081,查看是否可以访问
    image
    由上图所示,httpd服务器搭建完成,它的存放目录在/var/www/html/

准备源包

  1. 下载Ambari源包

    1
    $ wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.2.0/ambari-2.4.2.0-centos7.tar.gz
  2. 创建ambari目录

    1
    $ cd /var/www/html/ && mkdir ambari
  3. 将源包解压到ambari目录下

    1
    $ tar zxvf ambari-2.4.2.0-centos7.tar.gz -C /var/www/html/ambari/AMBARI-2.4.2.0
  4. 验证
    浏览器访问http://{IP}:8081/ambari,可以看到AMBARI-2.4.2.0目录
    image

配置repo文件

  1. 下载repo文件

    1
    $ wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.2.0/ambari.repo
  2. 配置Ambari本地源

    1
    $ cp ambari.repo /etc/yum.repos.d/
  3. 修改repo文件,使其访问内网yum源

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ cat /etc/yum.repos.d/ambari.repo
    #VERSION_NUMBER=2.1.1-236
    [Updates-ambari-2.1.1]
    name=ambari-2.1.1 - Updates
    baseurl=http://{IP}:8081/ambari/AMBARI-2.4.2.0/AMBARI-2.4.2.0/centos7/2.4.2.0-136/
    gpgcheck=1
    gpgkey=http://{IP}:8081/ambari/AMBARI-2.4.2.0/AMBARI-2.4.2.0/centos7/2.4.2.0-136/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
    enabled=1
    priority=1
    • 注意: baseurl和gpgkey的路径必须可以访问
  4. 生成缓存
    1
    $ yum makecache

如果没有任何报错的话,说明内网yum源配置成功,可以开心的安装ambari了,速度溜溜的。