Linux系统如何在离线环境或内网环境安装部署Docker服务和其他服务

image

如何在离线环境或纯内网环境的Linux机器上安装部署Docker服务或其他服务。本次我们以Docker服务和Ansible服务为例。

获取指定服务的所有rpm包

保证要获取rpm包的机器能够上网。

本次我们以Docker服务和Ansible服务为例。

修改配置实现:yum安装后保留rpm包

在linux上,使用yum安装,默认安装完成之后会删除下载的rpm包;想要yum安装软件后,还保留安装包,那么需要修改 /etc/yum.conf 配置文件中的keepcache参数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@docker02 ~]# vim /etc/yum.conf 
[main]
# 安装包保存位置
cachedir=/var/cache/yum/$basearch/$releasever
# 默认0,是不保存安装包;改为1,保留安装包
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

此时我们进入安装包保存位置:/var/cache/yum/,可见是没有任何rpm包的

1
2
3
[root@docker02 yum]# pwd
/var/cache/yum
[root@docker02 yum]# find . -type f | grep 'rpm'

获取安装Docker服务所需的rpm包

安装docker服务步骤如下:

1
2
3
4
5
6
7
8
### 安装必要依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
### 添加软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
### 安装最新版本的docker服务
yum -y install docker-ce
### 查看docker版本信息
docker -v

此时我们在 /var/cache/yum/目录通过命令过滤,可见安装docker服务的rpm包,并将这些包移到指定的 /root/software/docker_rpm目录中。

1
2
3
4
5
[root@docker02 yum]# pwd
/var/cache/yum
[root@docker02 yum]# find . -type f | grep 'rpm'
[root@docker02 yum]#
[root@docker02 yum]# mv $(find . -type f | grep 'rpm') /root/software/docker_rpm

这时在 /root/software/docker_rpm目录中的包就是我们安装docker服务所需的rpm包。我们可以打包下载,然后上传到离线或内网环境的Linux机器,之后进行离线Docker服务安装部署。

获取安装Ansible服务所需的rpm包

安装ansible服务步骤如下:

1
2
3
yum install -y ansible
### 查看ansible版本信息
ansible --version

此时我们在 /var/cache/yum/目录通过命令过滤,可见安装ansible服务的rpm包,并将这些包移到指定的 /root/software/ansible_rpm目录中。

1
2
3
4
5
[root@docker02 yum]# pwd
/var/cache/yum
[root@docker02 yum]# find . -type f | grep 'rpm'
[root@docker02 yum]#
[root@docker02 yum]# mv $(find . -type f | grep 'rpm') /root/software/ansible_rpm/

这时在 /root/software/ansible_rpm目录中的包就是我们安装ansible服务所需的rpm包。我们可以打包下载,然后上传到离线或内网环境的Linux机器,之后进行离线Ansible服务安装部署。

离线或内网环境部署指定服务

将上面Docker服务的rpm安装包和Ansible服务的rpm安装包,上传到离线或内网环境的Linux机器。

内网安装Docker服务

安装步骤如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[root@docker02 docker_rpm]# pwd
/root/service_install/docker_rpm
[root@docker02 docker_rpm]#
[root@docker02 docker_rpm]# ll
total 100904
-rw-r--r-- 1 root root 78256 Aug 23 2019 audit-libs-python-2.8.5-4.el7.x86_64.rpm
-rw-r--r-- 1 root root 302068 Nov 12 2018 checkpolicy-2.5-8.el7.x86_64.rpm
-rw-r--r-- 1 root root 30374084 Sep 18 01:54 containerd.io-1.3.7-3.1.el7.x86_64.rpm
-rw-r--r-- 1 root root 40816 Jul 6 22:33 container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
-rw-r--r-- 1 root root 302564 May 14 01:09 device-mapper-1.02.164-7.el7_8.2.x86_64.rpm
-rw-r--r-- 1 root root 195448 May 14 01:11 device-mapper-event-1.02.164-7.el7_8.2.x86_64.rpm
-rw-r--r-- 1 root root 195004 May 14 01:12 device-mapper-event-libs-1.02.164-7.el7_8.2.x86_64.rpm
-rw-r--r-- 1 root root 331908 May 14 01:13 device-mapper-libs-1.02.164-7.el7_8.2.x86_64.rpm
-rw-r--r-- 1 root root 432624 Apr 4 04:50 device-mapper-persistent-data-0.8.5-2.el7.x86_64.rpm
-rw-r--r-- 1 root root 25268380 Sep 18 03:06 docker-ce-19.03.13-3.el7.x86_64.rpm
-rw-r--r-- 1 root root 40247476 Sep 18 03:06 docker-ce-cli-19.03.13-3.el7.x86_64.rpm
-rw-r--r-- 1 root root 24744 Nov 25 2015 libaio-0.3.109-13.el7.x86_64.rpm
-rw-r--r-- 1 root root 67720 Aug 23 2019 libcgroup-0.41-21.el7.x86_64.rpm
-rw-r--r-- 1 root root 57460 Apr 4 04:59 libseccomp-2.3.1-4.el7.x86_64.rpm
-rw-r--r-- 1 root root 115284 Nov 12 2018 libsemanage-python-2.5-14.el7.x86_64.rpm
-rw-r--r-- 1 root root 1384208 May 14 01:19 lvm2-2.02.186-7.el7_8.2.x86_64.rpm
-rw-r--r-- 1 root root 1143916 May 14 01:19 lvm2-libs-2.02.186-7.el7_8.2.x86_64.rpm
-rw-r--r-- 1 root root 938736 Apr 4 05:05 policycoreutils-2.5-34.el7.x86_64.rpm
-rw-r--r-- 1 root root 468316 Apr 4 05:05 policycoreutils-python-2.5-34.el7.x86_64.rpm
-rw-r--r-- 1 root root 232448 Aug 23 2019 python-chardet-2.2.1-3.el7.noarch.rpm
-rw-r--r-- 1 root root 32880 Jul 4 2014 python-IPy-0.75-6.el7.noarch.rpm
-rw-r--r-- 1 root root 273012 Jul 4 2014 python-kitchen-1.1.1-5.el7.noarch.rpm
-rw-r--r-- 1 root root 635184 Nov 12 2018 setools-libs-3.3.8-4.el7.x86_64.rpm
-rw-r--r-- 1 root root 124852 May 14 03:58 yum-utils-1.1.31-54.el7_8.noarch.rpm

由上可见rpm包比较多,由于包之间会存在相互依赖,我们不可能手动安装rpm包。因此我们使用yum安装,并且安装时会自动处理rpm包相互依赖的问题,具体如下:

1
2
3
4
5
6
7
[root@docker02 docker_rpm]# pwd
/root/service_install/docker_rpm
[root@docker02 docker_rpm]#
[root@docker02 docker_rpm]# yum install -y *.rpm
[root@docker02 docker_rpm]#
[root@docker02 docker_rpm]# docker -v
Docker version 19.03.13, build 4484c46d9d

如此,docker服务安装完毕!

内网安装Ansible服务

安装步骤如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@docker02 ansible_rpm]# pwd
/root/service_install/ansible_rpm
[root@docker02 ansible_rpm]#
[root@docker02 ansible_rpm]# ll -h
total 22M
-rw-r--r-- 1 root root 18M Jun 19 13:08 ansible-2.9.10-1.el7.noarch.rpm
-rw-r--r-- 1 root root 55K Jan 30 2015 libyaml-0.1.4-11.el7_0.x86_64.rpm
-rw-r--r-- 1 root root 503K Apr 25 2018 python2-cryptography-1.7.2-2.el7.x86_64.rpm
-rw-r--r-- 1 root root 126K Jun 20 05:14 python2-httplib2-0.18.1-3.el7.noarch.rpm
-rw-r--r-- 1 root root 42K Apr 23 23:36 python2-jmespath-0.9.4-2.el7.noarch.rpm
-rw-r--r-- 1 root root 100K Nov 21 2016 python2-pyasn1-0.1.9-7.el7.noarch.rpm
-rw-r--r-- 1 root root 1.4M Jul 4 2014 python-babel-0.9.6-8.el7.noarch.rpm
-rw-r--r-- 1 root root 5.8K Mar 14 2015 python-backports-1.0-8.el7.x86_64.rpm
-rw-r--r-- 1 root root 13K Apr 25 2018 python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm
-rw-r--r-- 1 root root 218K Nov 21 2016 python-cffi-1.6.0-5.el7.x86_64.rpm
-rw-r--r-- 1 root root 53K Nov 25 2015 python-enum34-1.0.4-1.el7.noarch.rpm
-rw-r--r-- 1 root root 94K Aug 11 2017 python-idna-2.4-1.el7.noarch.rpm
-rw-r--r-- 1 root root 35K Nov 21 2016 python-ipaddress-1.0.16-2.el7.noarch.rpm
-rw-r--r-- 1 root root 519K Aug 23 2019 python-jinja2-2.7.2-4.el7.noarch.rpm
-rw-r--r-- 1 root root 26K Jul 4 2014 python-markupsafe-0.11-10.el7.x86_64.rpm
-rw-r--r-- 1 root root 269K Nov 21 2018 python-paramiko-2.1.1-9.el7.noarch.rpm
-rw-r--r-- 1 root root 123K Aug 11 2017 python-ply-3.4-11.el7.noarch.rpm
-rw-r--r-- 1 root root 105K Nov 25 2015 python-pycparser-2.14-1.el7.noarch.rpm
-rw-r--r-- 1 root root 397K Aug 11 2017 python-setuptools-0.9.8-7.el7.noarch.rpm
-rw-r--r-- 1 root root 154K Jul 4 2014 PyYAML-3.10-11.el7.x86_64.rpm
-rw-r--r-- 1 root root 22K Sep 8 2017 sshpass-1.06-2.el7.x86_64.rpm

由上可见rpm包比较多,由于包之间会存在相互依赖,我们不可能手动安装rpm包。因此我们使用yum安装,并且安装时会自动处理rpm包相互依赖的问题,具体如下:

1
2
3
4
5
6
7
8
9
10
11
12
[root@docker02 ansible_rpm]# pwd
/root/service_install/ansible_rpm
[root@docker02 ansible_rpm]#
[root@docker02 ansible_rpm]# yum install -y *.rpm
[root@docker02 ansible_rpm]#
[root@docker02 ansible_rpm]# ansible --version
ansible 2.9.10
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 = /bin/ansible
python version = 2.7.5 (default, Aug 7 2019, 00:51:29) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

如此,ansible服务安装完毕!

相关阅读

1、安装指定版本的docker服务


<-------------the end------------->
lightzhang wechat
欢迎扫一扫,订阅我的微信公众号!
坚持原创分享,你的支持就是我最大的动力!