如何离线安装ansible

在有网络的情况下,ansible还是很好安装的。但如果你的生产环境有很严格的网络要求,不能够连接外网,你又需要在生产环境上使用ansible。那只有使用离线的方式来安装。但很可惜的是,ansible官方提供的安装包,比如rpm包,并没有包含它所需要的依赖,直接安装是无法使用的。因此需要找个方法自己把所有的依赖解决。

解决的方法有很多,这里列一个比较简单的。首先,找一台能够上网的机器,并且拥有和你的生产服务器有相同linux版本(你的开发环境或测试环境一定有这样的机器)。然后在上头安装对应的工具(二选一):

  • yum-downloadonly
  • Yumdownloader

yum-downloadonly

安装 “downloadonly” 插件:

(RHEL5)
# yum install yum-downloadonly

(RHEL6)
# yum install yum-plugin-downloadonly

在运行yum install时,使用–downloadonly”选项:

yum install --downloadonly --downloaddir=<directory> <package>

确认你需要的package和对应的dependency包已经被保存在了你设置的下载目录。

注意:

  • 在使用插件之前,请检查/etc/yum/pluginconf.d/downloadonly.conf以确认此插件是“enabled = 1”
  • 这仅适用于“yum install / yum update”而不适用于“yum groupinstall”。你可以使用“yum groupinfo”来确认group中的包含软件包,再用yum install下载。
  • 如果仅指定包名称,则下载最新的可用包(如sshd)。否则,您可以指定完整的软件包名称和版本(例如httpd-2.2.3-22.el5)。
  • 如果不使用–downloaddir选项,文件将默认保存在/var/cache/yum/inrhel-{arch}-channel/packages
  • 如果需要,您可以使用相同的命令下载多个软件包。

Yumdownloader

如果你想获取已安装的软件包,那么请使用yumdownloader。

安装yum-utils软件包:

# yum install yum-utils

运行命令,然后运行所需的软件包:

# yumdownloader <package>

注意:

  • 包默认直接保存在当前工作目录中; 也可以使用–destdir选项来指定一个存储位置。
  • 如果您需要下载依赖关系,请务必添加–resolve。