因为Saltstack自己的repo源是在国外,在国内服务器yum安装Saltstack的时候下载软件包就非常慢,很多情况下还经常下载失败,其实软件包总大小只有10M左右,如果这样安装多台minion客户端就需要耗费不少时间;当然国内也有不少EPEL源提供yum安装Saltstack,但是测试了几个,发现安装的Saltstack都不是最新版。
所以,决定自己搭建一个Saltstack的repo软件源,供内部多台客户端安装minion用,在此记录一下搭建过程,以便后期挪用:
1、准备一台服务器做repo软件源的服务器
1
| 主机IP:192.168.0.130 操作系统:CentOS 6.8 x64 |
2、去Saltstack官网找对应操作系统的repo源进行yum安装,我这边操作系统都为CentOS 6.8,所以选择安装了CentOS 6的repo源
1
| yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el6.noarch.rpm |
3、创建要存放rpm软件的目录
4、安装createrepo和yum-utils工具,主要用作下载官方的repo源对应的软件包和制作独立软件源仓库的命令。
1
| # yum install createrepo yum-utils -y |
5、yum repolist查看saltstack的仓库标识,因为之前安装过官网的repo源,找出saltstack的仓库标示为salt-latest
1
2
3
4
5
6
7
8
9
10
11
12
13
| [root@master /]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirror.premi.st
* extras: mirrors.aliyun.com
* updates: mirrors.163.com
repo id repo name status
base CentOS-6 - Base 6,696
epel Extra Packages for Enterprise Linux 6 - x86_64 12,345
extras CentOS-6 - Extras 64
salt-latest SaltStack Latest Release Channel for RHEL/Centos 6 120
updates CentOS-6 - Updates 959 |
6、将salt-latest仓库里源对应的rpm软件包下载至/yumsalt目录
1
| # reposync -r salt-latest /yumsalt |
因为官方的repo源是在国外的,建议这台服务器连接国外VPN来下载,漫长的等待....总共会下载87个rpm包,大概22M
下载完毕,查看/yumsalt目录中已下载的目录文件,salt-latest目录中就是下载的rpm包
1
2
3
| [root@localhost /]# ll /yumsalt/
total 24
drwxr-xr-x. 2 root root 12288 Mar 10 14:30 salt-latest |
7、将整个/yumsalt做出一个独立的仓库
再次查看/yumsalt目录,会发现多了repodata,这是仓库的索引目录
1
2
3
4
| [root@localhost /]# ll /yumsalt/
total 24
drwxr-xr-x. 2 root root 4096 Mar 10 14:33 repodata
drwxr-xr-x. 2 root root 12288 Mar 10 14:30 salt-latest |
8、建立一个完整的repo仓库文件
1
2
3
4
5
6
7
| # rm -rf /etc/yum.repos.d/salt-latest.repo //先删除官网的仓库文件,已经用完了..
# vi /etc/yum.repos.d/salt-new.repo
[salt]
name=salt
baseurl=file:///yumsalt/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/saltstack-signing-key |
saltstack-signing-key是验证key文件,yum安装salt时需要验证软件包的,这个在安装官网repo源的时候自动下载到/etc/pki/rpm-gpg目录了。
9、尝试在本机yum安装salt-master和salt-minion,如果以上步骤都正确,那么已经可以用本地的repo仓库安装saltstack了
1
| yum install salt-master salt-minion -y |
注:如不想在本机直接测试安装saltstack,可以忽略第8、9步
10、发布本机自建repo仓库
本机已经可以用了,但是想让其他客户端服务器也能用这个本机上的repo源安装saltstack,就需要把本机的repo仓库通过Apache服务发布出去
安装Apache
创建软链接:
1
| # ln -sv /yumsalt/ /var/www/html/salt |
启动httpd服务,并设置为开机自启动
1
2
| # service httpd start
# chkconfig httpd on |
到/yumsalt仓库目录,vi新建一个repo仓库文件,供客户端服务器下载调用(请修改下面IP为自己本地repo源服务器的IP)
1
2
3
4
5
6
7
8
| [root@localhost yumsalt]# pwd
/yumsalt
[root@localhost yumsalt]# vi salt-new.repo
[salt]
name=salt
baseurl=http://192.168.0.130/salt/
gpgcheck=1
gpgkey=http://192.168.0.130/salt/saltstack-signing-key |
复制saltstack-signing-key到/yumsalt/目录下
1
| # cp /etc/pki/rpm-gpg/saltstack-signing-key /yumsalt/ |
再查看/yumsalt目录,应该有下面2个目录和2个文件
1
2
3
4
5
6
| [root@localhost /]# ll /yumsalt/
total 24
drwxr-xr-x. 2 root root 4096 Mar 10 14:33 repodata
drwxr-xr-x. 2 root root 12288 Mar 10 14:30 salt-latest
-rw-r--r-- 1 root root 116 Mar 10 15:13 salt-new.repo
-rw-r--r-- 1 root root 1744 Mar 10 15:01 saltstack-signing-key |
再用浏览器访问:http://192.168.0.130/salt/,出现下面界面,说明repo源仓库发布成功
11、客户端使用发布的repo源安装salt-minion
进入/etc/yum.repos.d目录,下载repo源服务器上repo源
1
2
3
| [root@mail yum.repos.d]# pwd
/etc/yum.repos.d
[root@mail yum.repos.d]# wget http://192.168.0.130/salt/salt-new.repo |
OK....现在客户端服务器已经可以使用发布的自建仓库源yum install salt-minion -y安装了