1. 程式人生 > >Linux系統如何在離線環境或內網環境安裝部署Docker服務和其他服務

Linux系統如何在離線環境或內網環境安裝部署Docker服務和其他服務

 

如何在離線環境或純內網環境的Linux機器上安裝部署Docker服務或其他服務。本次我們以Docker服務和Ansible服務為例。

 

獲取指定服務的所有rpm包

保證要獲取rpm包的機器能夠上網。

本次我們以Docker服務和Ansible服務為例。

 

修改配置實現:yum安裝後保留rpm包

在linux上,使用yum安裝,預設安裝完成之後會刪除下載的rpm包;想要yum安裝軟體後,還保留安裝包,那麼需要修改 /etc/yum.conf 配置檔案中的keepcache引數。

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

 

此時我們進入安裝包儲存位置:/var/cache/yum/,可見是沒有任何rpm包的

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

 

獲取安裝Docker服務所需的rpm包

安裝docker服務步驟如下:

1 ### 安裝必要依賴
2 yum install -y yum-utils device-mapper-persistent-data lvm2
3 ### 新增軟體源資訊
4 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5 ### 安裝最新版本的docker服務
6 yum -y install docker-ce
7 ### 檢視docker版本資訊
8 docker -v

 

此時我們在 /var/cache/yum/目錄通過命令過濾,可見安裝docker服務的rpm包,並將這些包移到指定的 /root/software/docker_rpm目錄中。

1 [root@docker02 yum]# pwd
2 /var/cache/yum
3 [root@docker02 yum]# find . -type f | grep 'rpm'
4 [root@docker02 yum]# 
5 [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 yum install -y ansible
2 ### 檢視ansible版本資訊
3 ansible --version

 

此時我們在 /var/cache/yum/目錄通過命令過濾,可見安裝ansible服務的rpm包,並將這些包移到指定的 /root/software/ansible_rpm目錄中。

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

如此,docker服務安裝完畢!

 

內網安裝Ansible服務

安裝步驟如下:

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

 

由上可見rpm包比較多,由於包之間會存在相互依賴,我們不可能手動安裝rpm包。因此我們使用yum安裝,並且安裝時會自動處理rpm包相互依賴的問題,具體如下:

 1 [root@docker02 ansible_rpm]# pwd
 2 /root/service_install/ansible_rpm
 3 [root@docker02 ansible_rpm]# 
 4 [root@docker02 ansible_rpm]# yum install -y *.rpm
 5 [root@docker02 ansible_rpm]# 
 6 [root@docker02 ansible_rpm]# ansible --version
 7 ansible 2.9.10
 8   config file = /etc/ansible/ansible.cfg
 9   configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
10   ansible python module location = /usr/lib/python2.7/site-packages/ansible
11   executable location = /bin/ansible
12   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服務

 


 

 

———END———
如果覺得不錯就關注下唄 (-^O^-) !

&n