首页 » 操作系统 » Linux » 自建Saltstack的repo软件源仓库

自建Saltstack的repo软件源仓库

 

因为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软件的目录

1
# mkdir /yumsalt

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做出一个独立的仓库

1
# createrepo /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
# yum install httpd -y

创建软链接:

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源仓库发布成功
QQ截图20170310181639
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安装了~

总结:此方法也适用自建和发布其他repo仓库源~

原文链接:自建Saltstack的repo软件源仓库,转载请注明来源!

4