1.saltstack使用指南:saltstack的介绍和安装

来源:互联网 发布:数据库isnull 编辑:程序博客网 时间:2024/05/24 05:50

saltstack的介绍和安装


saltstack介绍

salt,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。

saltstack 和puppet的都是进行自动化运维的工具,通过对两者的对比可以发现,puppet强调一切的配置都是资源与资源之间的关系,而且具有严格的配置规范,对于新手来说有一定的学习阻力,salt除了可以进行服务等基础资源的配置,因为其基于python开发,所以可以在开发相应的模板,支持各种json和xml格式的放回,而且具有良好的触发特性。


saltstack安装

1.rpm安装方式(极力推荐!!!)

在本系列的讲解中,对于saltstack的安装部署都是采用官方文档进行的,这需要指定相关的yum仓库。关于仓库的地址如下所示.

(1)获取并且添加仓库钥匙(repository key):

系统版本redhat7

//执行如下shell命令:[root@server saltstack]# wget https://repo.saltstack.com/yum/rhel7/SALTSTACK-GPG-KEY.pub[root@server saltstack]# rpm --import SALTSTACK-GPG-KEY.pub[root@server saltstack]# rm -f SALTSTACK-GPG-KEY.pub

系统版本redhat6

//执行如下shell命令:[root@server saltstack]# wget https://repo.saltstack.com/yum/rhel6/SALTSTACK-GPG-KEY.pub[root@server saltstack]# rpm --import SALTSTACK-GPG-KEY.pub[root@server saltstack]# rm -f SALTSTACK-GPG-KEY.pub

系统版本redhat5

//执行如下shell命令:[root@server saltstack]# wget https://repo.saltstack.com/yum/rhel5/SALTSTACK-EL5-GPG-KEY.pub[root@server saltstack]# rpm --import SALTSTACK-GPG-KEY.pub[root@server saltstack]# rm -f SALTSTACK-EL5-GPG-KEY.pub

(2)yum仓库地址:

因为saltstack有两种模式:ZeroMQRAET,我们这里建议大家采用ZeroMQ(轻量级消息队列),关于yum仓库地址需要修改yum的repo文件,该文件位于/etc/yum.repos.d/目录.

[root@server saltstack]# vim /etc/yum.repos.d/yum.repo

根据不同的系统在该文件添加如下信息:

redhat 7系统:

##################### Enable SaltStack's package repository[saltstack-repo]name=SaltStack repo for RHEL/CentOS 7baseurl=https://repo.saltstack.com/yum/rhel7enabled=1gpgcheck=1gpgkey=https://repo.saltstack.com/yum/rhel7/SALTSTACK-GPG-KEY.pub

redhat 6系统:

##################### Enable SaltStack's package repository[saltstack-repo]name=SaltStack repo for RHEL/CentOS 6baseurl=https://repo.saltstack.com/yum/rhel6enabled=1gpgcheck=1gpgkey=https://repo.saltstack.com/yum/rhel6/SALTSTACK-GPG-KEY.pub

redhat 5系统:

##################### Enable SaltStack's package repository[saltstack-repo]name=SaltStack repo for RHEL/CentOS 5baseurl=https://repo.saltstack.com/yum/rhel5enabled=1gpgcheck=1gpgkey=https://repo.saltstack.com/yum/rhel5/SALTSTACK-EL5-GPG-KEY.pub

如果你的网络环境很差,请配置本地的yum仓库!!!

如果你的网络环境很差,请配置本地的yum仓库!!!

如果你的网络环境很差,请配置本地的yum仓库!!!

重要的事情说三遍!!!


(3)saltstack本地yum仓库:

(1)找到安装源(在baseurl指定位置):
这里写图片描述
可以看到有三个对应的版本,使用mirror把指定的目录下载下来,因为我实验的主机是采用redhat6系统。所以下载该目录:
lftp repo.saltstack.com:/yum> mirror rhel6


为了方便大家安装,我已经把所有的安装包(rhel6)上传到了csdn上,地址如下:

http://download.csdn.net/download/linux_player_c/9424028


(2)使用createrepo生成rpm的依赖关系,这需要使用createrepo命令,如果没有该命令则需要安装,安装命令如下:
这里写图片描述

进入到安装所需rpm的目录:
这里写图片描述

生成rpm依赖关系:
这里写图片描述

(3)将该路径写入yum的repo文件中(/etc/yum.repos.d/yum.repo):
这里写图片描述

(4)完成上述配置后执行如下命令:
[root@minion4 ~]# yum clean all
[root@minion4 ~]# yum update

安装服务端(master)

[root@minion4 ~]# yum install salt-master salt-cloud salt-ssh salt-syndic -y

安装客户端(minion)

[root@minion4 ~]# yum install salt-minion salt-cloud salt-ssh salt-syndic -y

2.源码安装(不推荐使用,太过复杂)

如果想要通过源码安装的可以采用如下方式

公共组件

1.Python 2.6 >= 2.6 < 3.0
(在python的官网可以选择合适的版本)
下载地址:https://www.python.org/downloads/release/python-2711/

2.msgpack-python
下载地址:https://pypi.python.org/pypi/msgpack-python/#downloads

3.YAML
(1)pyyaml
下载地址:http://pyyaml.org/download/pyyaml/PyYAML-3.11.tar.gz
(2)yaml
下载地址:http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz

4.Jinja2
下载地址:https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.7.3.tar.gz

5.MarkupSafe
下载地址:https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.9.3.tar.gz

6.apache-libcloud
下载地址:http://www.apache.org/dyn/closer.cgi/libcloud/apache-libcloud-0.20.1.tar.gz

7.Requests
下载地址:https://pypi.python.org/pypi/requests/#downloads


ZeroMQ专有组件

1.ZeroMQ >= 3.2.0
下载地址:http://download.zeromq.org/zeromq-4.0.5.tar.gz

2.pyzmq >= 2.2.0
下载地址:https://pypi.python.org/pypi/pyzmq/15.1.0#downloads
下载地址:http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz

3.PyCrypto
下载地址:https://pypi.python.org/pypi/pycrypto/2.6.1

4.M2Crypto
下载地址:https://pypi.python.org/pypi/M2Crypto/0.22.5


saltstack源码安装过程


安装前准备

上述的大部分模块都可以在pypi上获得(https://pypi.python.org/pypi),下载后文件的列表如下:
这里写图片描述

实验环境:
系统:redhat-enterprise6.5
master节点: 192.168.3.143 (master.saltstack.com)
minion节点:192.168.3.241 (minion.saltstack.com)

注意:
1.两者的防火墙确保关闭:
[root@server tar_install]# iptables -F
2.互相进行解析/etc/hosts:
这里写图片描述


具体安装过程

1.更新python

1.关于上述列举的安装包我们逐个进行安装,大部分的包都是python的模块,所以我们先来安装python,如果系统已经拥有python则需要查看其版本(必须在python2.6之上),打开pyhton解释器可以查看其版本:
这里写图片描述

虽然版本已经在2.6之上了,如果版本不够我们可以更新python。
更新步骤如下:

(1)解压python安装包:
[root@master tar_install]# tar xvf Python-2.7.11.tar.xz

(2)进入安装目录,配置:
这里写图片描述

可以看到配置时缺少C编译器,安装gcc组件:
这里写图片描述

再次执行配置:
这里写图片描述

(3)安装python:
这里写图片描述

(4)将python2.7的头文件拷贝到标准目录/usr/local/include下:
这里写图片描述

(5)备份旧版本的python,并且新安装的python符号链接到/usr/bin/下:
这里写图片描述

(6)修改yum的脚本信息,指定为之前的python版本:
[root@master python2.7]# vim /usr/bin/yum

这里写图片描述

(7)再次打开python解释器查看版本:
这里写图片描述

已经更新到了最新版本的python。


2.安装yaml和PyYAML

(1)对yaml进行解压:
这里写图片描述

(2)配置安装信息:
这里写图片描述

(3)安装yaml:
这里写图片描述

(4)解压PyYAML:
这里写图片描述

(5)安装PyYAML:
这里写图片描述


3.安装setuptools

(1)解压setuptools:
这里写图片描述

(2)安装setuptools:
这里写图片描述


4.安装MarkupSafe

(1).解压MarkupSafe-0.9.3.tar.gz:
这里写图片描述

(2).安装MarkupSafe-0.9.3:
这里写图片描述

(3).解压MarkupSafe-0.23.tar.gz:
这里写图片描述

(4).安装MarkupSafe-0.23:
这里写图片描述


5.安装Jinja

1.解压Jinja:
这里写图片描述

2.安装Jinja:
这里写图片描述


6.安装apache-libcloud

(1).解压apache-libcloud:
这里写图片描述

(2).安装apache-libcloud:
[root@master apache-libcloud-0.20.1]# cd apache-libcloud-0.20.1
[root@master apache-libcloud-0.20.1]# python setup.py install


7.安装autoconf

1.[root@master tar_install]# tar xvf autoconf-2.69.tar.gz
2.[root@master tar_install]# cd autoconf-2.69
3.[root@master autoconf-2.69]# ./configure –prefix=/usr
4.[root@master autoconf-2.69]# make && make install


8.安装pyzmq

[root@master tar_install]# tar xvf pyzmq-15.1.0.tar.gz
[root@master tar_install]# cd pyzmq-15.1.0
[root@master pyzmq-15.1.0]# python setup.py install


9.安装requests

[root@master tar_install]# tar xvf requests-2.9.1.tar.gz
[root@master tar_install]# cd requests-2.9.1
[root@master requests-2.9.1]# python setup.py install


10.安装zeromq

[root@master tar_install]# tar xvf zeromq-4.0.5.tar.gz
[root@master zeromq-4.0.5]# cd zeromq-4.0.5
这里写图片描述
可以看到它说缺少libtool包,使用yum安装即可:
[root@master zeromq-4.0.5]# yum install libtool -y

再次安装:
[root@master zeromq-4.0.5]# ./autogen.sh
[root@master zeromq-4.0.5]# ./configure –prefix=/usr/local
[root@master zeromq-4.0.5]# make install


11.安装msgpack-python

[root@master tar_install]# tar xvf msgpack-python-0.4.6.tar.gz
这里写图片描述


12.安装pycryto

[root@master tar_install]# tar xvf pycrypto-2.6.1.tar.gz
[root@master tar_install]# cd pycrypto-2.6.1
[root@master pycrypto-2.6.1]# python setup.py install


13.安装M2Crypto

1.安装swig-3.0.7.tar.gz:

(1)[root@master tar_install]# tar xvf swig-3.0.7.tar.gz
(2)[root@master tar_install]# cd swig-3.0.7
(3)[root@master swig-3.0.7]# ./configure –prefix=/usr/local/
(4)[root@master swig-3.0.7]# yum install pcre* -y
(5)[root@master swig-3.0.7]# make
(6)[root@master swig-3.0.7]# make install

2.安装openssl-1.0.1g.tar.gz:

[root@master tar_install]# tar xvf openssl-1.0.1g.tar.gz
[root@master openssl-1.0.1g]# ./config shared –prefix=/usr/local
[root@master openssl-1.0.1g]# make
[root@master openssl-1.0.1g]# make install
[root@master M2Crypto-0.22.5]# \cp -a /usr/local/include/openssl/ /usr/include/

3.安装certifi-2015.11.20.tar.gz
[root@master tar_install]# tar xvf certifi-2015.11.20.tar.gz
[root@master tar_install]# cd certifi-2015.11.20
[root@master certifi-2015.11.20]# python setup.py install

4.安装backports.ssl_match_hostname-3.5.0.1.tar.gz
这里写图片描述
进入目录安装:
这里写图片描述

4.安装tornado-4.2.1.tar.gz

[root@master tar_install]# tar xvf tornado-4.2.1.tar.gz
[root@master tar_install]# cd tornado-4.2.1
[root@master tornado-4.2.1]# python setup.py install

5.安装M2Crypto-0.22.5.tar.gz
[root@master tar_install]# tar xvf M2Crypto-0.22.5.tar.gz
[root@master tar_install]# cd M2Crypto-0.22.5
[root@master M2Crypto-0.22.5]# python setup.py install


安装salt

[root@master tar_install]# tar xvf salt-2015.8.1.tar.gz
[root@master tar_install]# cd salt-2015.8.1
[root@master salt-2015.8.1]# python setup.py install


测试Saltstack

查看saltstack的安装情况:
这里写图片描述
可以看到我们已经安装的软件及其版本,这个程度足够我们使用saltstack的ZeroMQ模式。


如果你的命令执行很慢!!!请看这里!!!
如果你的命令执行很慢!!!请看这里!!!
如果你的命令执行很慢!!!请看这里!!!

此时不需惊慌,你给saltstack分配的资源一定是足够的,只需要把本机及其他的实验节点做好解析即可。


小结:

上述我们介绍了saltstack的两种安装方式:rpm安装以及源码安装,这里极力推荐第一种方案,非常的快捷、简单。在后续的章节中我们将会介绍saltstack的更多应用场景,敬请期待。


附录

saltstack依赖性

Salt should run on any Unix-like platform so long as the dependencies are met.

Python 2.6 >= 2.6 <3.0

msgpack-python
High-performance message interchange format

YAML
Python YAML bindings

Jinja2
parsing Salt States (configurable in the master settings)

MarkupSafe
Implements a XML/HTML/XHTML Markup safe string for Python

apache-libcloud
Python lib for interacting with many of the popular cloud service providers using a unified API

Requests
HTTP library


Depending on the chosen Salt transport, ZeroMQ or RAET, dependencies vary:


ZeroMQ:


ZeroMQ >= 3.2.0

pyzmq >= 2.2.0
ZeroMQ Python bindings

PyCrypto
Python cryptography toolkit

M2Crypto
“Me Too Crypto” - Python OpenSSL wrapper


RAET:


libnacl
Python bindings to libsodium

ioflo
flo programming interface raet and salt-raet is built on

RAET
worlds most awesome UDP protocol


Optional Dependencies

mako
an optional parser for Salt States (configurable in the master settings)
gcc
dynamic Cython module compiling

1 0