https://blog.51cto.com/life2death/1708417
3.搭建yum倉(cāng)庫(kù),準(zhǔn)備需要的軟件
mlocate lrzsz tree vim nc nmap lrzsz wget bash-completion bash-completion-extras cowsay sl htop iotop iftop lsof net-tools sysstat unzip bc psmisc ntpdate wc telnet-server bind-utils createrepo
gcc gcc-c++ autoconf pcre pcre-devel make automake httpd-tools
還有架構(gòu)中要用到的軟件與依賴環(huán)境也要下載放到倉(cāng)庫(kù)中
服務(wù)端—m01管理機(jī)
提前下載好nginx
yum install nginx -y
把rpm包及其相關(guān)依賴全部都下載到本地,保存好。
手動(dòng)在/etc/yum.repos.d/目錄下配置本地倉(cāng)庫(kù)信息。
使用createrepo命令生成repodata信息。
使用yum repoinfo檢查確認(rèn)。
yum倉(cāng)庫(kù)本地存放rpm包的路徑:/yum/
創(chuàng)建一個(gè)本地倉(cāng)庫(kù)的目錄
mkdir /yum/
yum install --downloadonly --downloaddir=/yum/ mlocate lrzsz tree vim nc nmap lrzsz wget bash-completion bash-completion-extras cowsay sl htop iotop iftop lsof net-tools sysstat unzip bc psmisc ntpdate wc telnet-server bind-utils gcc gcc-c++ autoconf pcre pcre-devel make automake httpd-tools
只下載不安裝的命令:
--downloadonly 只下載不安裝
--downloaddir 指定rpm包的下載路徑
1.修改yum配置文件,打開本地緩存,1為開啟,0為不開啟
這里要把keepcache打開
從外網(wǎng)下載的rpm包可以到緩存目錄/var/cache/yum/下查找,可以將本地緩存下面需要的包都移動(dòng)到y(tǒng)um倉(cāng)庫(kù)中。
[root@m01 /etc/yum.repos.d]# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
...
2.安裝createrepo
#創(chuàng)建一個(gè)本地倉(cāng)庫(kù)的目錄
mkdir /yum/
#安裝
yum install createrepo -y
#生成索引文件
createrepo /yum/
3.每次下載了新的rpm包需要執(zhí)行此命令
createrepo --update /yum/
--update 如果元數(shù)據(jù)已經(jīng)存在,且軟件倉(cāng)庫(kù)中只有部分軟件發(fā)生了改變或增減,則可用update參數(shù)直接對(duì)原有元數(shù)據(jù)進(jìn)行升級(jí),效率比重新分析rpm包依賴并生成新的元數(shù)據(jù)要高很多。
4.通過(guò)http協(xié)議訪問(wèn)
創(chuàng)建一個(gè)本地源
[root@m01]# vim /etc/yum.repos.d/yum-Media.repo
[yum_ck] #本地倉(cāng)庫(kù)名
name=CentOS- - 倉(cāng)庫(kù) #注釋信息
baseurl=http://10.0.0.61:8888/ #http協(xié)議,rpm包存放路徑
gpgcheck=0 #關(guān)閉安全驗(yàn)證
enabled=1 #啟用本倉(cāng)庫(kù)
priority=1 #優(yōu)先級(jí)為1,最高
通過(guò)http協(xié)議訪問(wèn)
配置.conf文件
不要與ngin.conf文件沖突
vim /etc/nginx/conf.d/yum_ck.conf
server {
listen 8888;
server_name 10.0.0.61;
root /yum;
index index.html;
location / {
root /yum;
autoindex on;
}
}
重啟nginx
nginx -t
systemctl start nginx
5.清除yum緩存
yum clean all
6.下載一款軟件放到/yum/下測(cè)試
yum install --downloadonly --downloaddir=/yum nfs-utils
# 執(zhí)行此命令檢查是否是從本地源找的包
yum provides nfs-utils
#顯示結(jié)果為本地倉(cāng)庫(kù)名代表成功
Repo : @yum_ck
7.優(yōu)先級(jí)設(shè)置
1.下載第三方插件
yum install yum-plugin-priorities.noarch
2.檢查是否啟動(dòng)服務(wù)(默認(rèn)是開啟的)
cat /etc/yum/pluginconf.d/priorities.conf
[main]
enabled = 1
3.修改源的優(yōu)先級(jí)(新建的本地源在創(chuàng)建時(shí)已添加優(yōu)先級(jí)為1)
vim /etc/yum.repos.d/CentOS-Base.repo
代碼中已注釋“#添加優(yōu)先級(jí)為2”
[root@m01 /etc/yum.repos.d]# vim CentOS-Base.repo
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
priority=2 #添加優(yōu)先級(jí)為2
#released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
priority=2 #添加優(yōu)先級(jí)為2
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
priority=2 #添加優(yōu)先級(jí)為2
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
priority=2 #添加優(yōu)先級(jí)為2
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
priority=2 #添加優(yōu)先級(jí)為2
8.對(duì)本地倉(cāng)庫(kù)進(jìn)行更新
下載一個(gè)新的rpm軟件包到本地倉(cāng)庫(kù),此時(shí)我們使用’yum repoinfo yum_ck ‘查看會(huì)發(fā)現(xiàn)軟件包的數(shù)量并沒(méi)有增加,我們安裝新增的軟件包也會(huì)提示,找不到此軟件包的現(xiàn)象,可以按照下述步驟,更新倉(cāng)庫(kù)信息。
yum_ck === 本地倉(cāng)庫(kù)的名稱
查看舊的軟件包總數(shù) yum repoinfo yum_ck | grep pkgs
更新本地倉(cāng)庫(kù) createrepo --update /yum/
清除所有緩存 yum clean all
查看新的軟件包總數(shù) yum repoinfo yum_ck | grep pkgs
如果軟件包的數(shù)量增加,說(shuō)明倉(cāng)庫(kù)更新成功。
9.將配置推送到所有的客戶端
yum -y install yum-plugin-priorities.noarch
/etc/yum.repos/yum-Media.repo
/etc/yum.repos.d/CentOS-Base.repo
用ansible劇本實(shí)現(xiàn),在本地配置好
這里的/etc/ansible/file路徑是根據(jù)自己的環(huán)境創(chuàng)建的,只是為了推送這個(gè)本地源的配置文件,推送到客戶端的路徑不要寫錯(cuò)就好。
[root@m01 /etc/ansible]# cat /etc/ansible/yum_ck.yml
#本地yum倉(cāng)庫(kù)搭建
---
- hosts: all
tasks:
- name: cp yum-Media.repo
copy:
src: /etc/ansible/file/yum-Media.repo
dest: /etc/yum.repos.d/
force: yes
- name: copy .repo
copy:
src: /etc/ansible/file/CentOS-Base.repo
dest: /etc/yum.repos.d/CentOS-Base.repo
force: yes
- name: yum-plugin-priorities.noarch
yum:
name: yum-plugin-priorities.noarch
state: present