作为一个运维人员,有时候公司的服务器外网权限控制的很死,安装系统离线源之外的工具,会感到非常头疼,因为离线rpm安装的话,有很多依赖需要下载安装。今天以离线安装ansible为例,与大家分享下离线安装centos7一些开源工具的方法。

系统:centos7
服务器:一台能联网的、一台离线的。系统版本相同即可
工具:yumdownloader

Yumdownloader是一款简单,但是却十分有用的命令行工具,它可以一次性下载任何 RPM 软件包及其所有依赖包。yum install yum-utils。一旦安装完成,运行如下命令去下载一个软件包,例如 httpd。yumdownloader httpd,为了根据所有依赖性下载软件包,我们使用 --resolve参数:yumdownloader --resolve httpd默认情况下,Yumdownloader 将会下载软件包到当前工作目录下。
为了将软件下载到一个特定的目录下,我们使用 --destdir 参数:yumdownloader --resolve --destdir=/root/mypackages/ httpd
或者,yumdownloader --resolve --destdir /root/mypackages/ httpd

 

在能联网的服务器上

1、安装yumdownloader

yumdownloader是什么:yumdownloader is a program for downloading RPMs from Yum repositories

安装:​​yum install yum-utils -y​

2、获取ansible安装包及依赖

[root@localhost ~]# mkdir -p /tmp/local-yum  --制作的 yum 源根目录 
[root@localhost ~]# mkdir -p /tmp/local-yum/Packages --yum源的下的packages
[root@localhost ~]# yumdownloader --resolve --destdir /tmp/local-yum/Packages ansible
[root@localhost ~]# yumdownloader --resolve --destdir /tmp/local-yum/Packages createrepo

注意/tmp/local-yum/Packages之间是有空格的哦

Linux yum离线安装神器yumdownloader_离线

[root@localhost local-yum]# tar -zcf ansible.tar.gz  Packages  --到local-yum目录下打包Packages该目录

3、上传将ansible.tar.gz上传到离线服务器上/tmp/local-yum目录下

 

在离线服务器上

1、解压压缩包

[root@localhost local-yum]# mkdir -p /tmp/local-yum 
 [root@localhost local-yum]#tar zxf ansible.tar.gz

[root@localhost local-yum]# cd /tmp/local-yum/Packages/

 

2、制作离线源

[root@localhost Packages]# rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
[root@localhost Packages]# rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
[root@localhost Packages]# rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
[root@localhost local-yum]# createrepo /tmp/local-yum/

[root@localhost local-yum]# pwd
/tmp/local-yum
[root@localhost local-yum]# ls
ansible.tar.gz  Packages  repodata

yum源中是不认识这些包的,需要做下处理,比如重新创建repodata,这个命令就是createrepo

 

3、编辑yum文件

​vim /etc/yum.repos.d/ansible.repo​

[ansible]
name=ansible
baseurl=file:///tmp/local-yum
gpgcheck=0
enabled=1

 

4、安装ansible(yum install 可以安装ansible的包了,并且会自己解决依赖问题)

​yum install ansible -y​