系统环境: Red Hat Enterprise Linux Server release 7.5 (Maipo)
Python版本:
Python 2.7.5
由于在工作环境中,经常遇到批量安装的服务器,不具备连接互联网的条件。同时通过简单的下载安装 ansible 源码安装,又会遇到各种奇葩问题,推荐使用自制 yum 源方法,然后使用 yum安装 ansible。
一、准备一台可以连接互联网的相同版本系统的操作系统(安装环境一样),使用yumdownloader工具下载ansible安装包以及所有依赖包。并以 root 身份安装 Yumdownloader工具:
# yum -y install yum-utils
创建两个文件夹,用于存放依赖的安装包
# mkdir /root/packages1 /root/packages2
由于默认的源里没有 ansible,需要安装 fedora epel源:
# yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
下载 ansible 和 所有依赖包
# yumdownloader --resolve --destdir /root/packages1 ansible
# yumdownloader --resolve --destdir /root/packages2 createrepo
二、将上面下载的所有 rpm 安装包打包,传输到需要批量的任意一台服务器上,并解压到指定的文件夹里面
# tar -Jcvf packages1.tar.xz packages1
# tar -Jcvf packages2.tar.xz packages2
# tar -Jxvf packages1.tar.xz -C /mnt/
# tar -Jxvf packages2.tar.xz -C /mnt/
1.首先创建 安装createrepo 进入 /mnt/packages2 目录中
# rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
# rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
# rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
2. 然后使用createrepo生成符合要求的yum仓库,执行:
# cd /mnt
# createrepo /packages1
Spawning worker 0 with 25 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
三、配置本地 yum源
把当前存在 yum 做备份,并移走别的目录
# vi /etc/yum.repos.d/ansible.repo
[ansibel]
name=my local ansible
baseurl=file:///mnt/packages1
enabled=1
gpgcheck=0
保存退出,然后执行:
# yum clean all
# yum makecache
四、使用 yum安装 ansible
# yum -y install ansible
验证安装成功:
ansible --version
ansible 2.7.4
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Feb 20 2018, 09:19:12) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
备注:由于以上环境依赖存在差异,仅供参考。