saltstack(一)——简介和基本安装

saltstack(一)--简介和基本安装

参照中文官方文档 http://docs.saltstack.cn/topics/index.html

step1:介绍

1、30秒的概要

Salt是: 一个配置管理系统,能够维护预定义状态的远程节点(比如,确保指定的包被安装,指定的服务在运行) 一个分布式远程执行系统,用来在远程节点(可以是单个节点,也可以是任意规则挑选出来的节点)上执行命令和查询数据 开发其的目的是为远程执行提供最好的解决方案,并使远程执行变得更好,更快,更

2、简单

既要考虑大规模部署,又要考虑小规模系统,提供适应多种场合的应用让人沮丧,但Salt非常容易设置和维护,而不用考虑项目的大小。从数量可观的本地网络系统,到跨数据中心的互联网部署,Salt设计为在任意数量的server下都可工作。salt的拓扑使用简单的server/client模式,需求的功能内建在一组daemon中。salt在几乎不改动配置的情况下就可以工作,也可以调整从而满足特定的需求。

3、并行执行

Salt的核心功能

  • 使命令发送到远程系统是并行的而不是串行的
  • 使用安全加密的协议
  • 使用最小最快的网络载荷
  • 提供简单的编程接口
  • Salt同样引入了更加细致化的领域控制系统来远程执行,使得系统成为目标不止可以通过主机名,还可以通过系统属性。
4、在久经考验的技术上构建

Salt运用大量的技术和技巧。网络层使用卓越的ZeroMQ 网络类库构建,所以Salt的守护端包含了可行的和透明的AMQ代理。Salt使用公钥和master守护端认证,然后使用更快的AES _ 负载通信加密; 身份认证和加密对salt是不可或缺的。Salt通过msgpack` 建立通信,使得速度更快并且网络流量少。

5、PYTHON客户端接口

为了允许简单的扩展,Salt执行程序可以写为纯Python模块。数据从Salt执行过程中收集到可以发送回master服务端,或者发送到任何任意程序。Salt可以从一个简单的Python API调用,或者从命令行被调用,所以Salt可以用来执行一次性命令,也可以作为一个更大的应用程序的一个组成部分。

6、快速,灵活,易扩展

结果是能够在1台或多台目标机器上快速执行命令的系统。Salt运行快速,安装简单,高度可定制;Salt用相同的远程执行架构满足管理不同数量服务器的需求。Salt基础设施可以集成最好的远程执行工具,增强了Salt的能力及用途,得到功能丰富实用可以适用于任何网络的系统。

7、开放

Salt是在Apache 2.0 协议_下开发,可以被用来开发开放和私有项目。请将你的扩展提交回Salt项目使我们可以共同让Salt茁壮成长。请随意播撒Salt在你的系统上,享受美味芬芳。

step2:基本安装

系统环境
Distribution : CentOS 6.5 minimal 
salt version : 2014.1.0
Init system : sysvinit
安装之前
1、关闭selinux 
2、时间同步
3、dns都有对master和minion的解析
测试环境
master:122.131 
minion:122.134/122.135
master端
# yum list all | grep salt 
salt.noarch 2014.1.0-1.el6 epel
salt-api.noarch 0.8.2-0.el6 epel
salt-cloud.noarch 0.8.8-1.el6 epel
salt-master.noarch 2014.1.0-1.el6 epel
salt-minion.noarch 2014.1.0-1.el6 epel
rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum install salt-master
service salt-master on
chkconfig salt-master on
minion端
rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm 
yum install salt-minion
service salt-minion start
chkconfig salt-minion on
 

1、master上这里为了方便可以使用自动接收minion的证书,这里还是先手动接受证书

/etc/init.d/salt-master start 

2、修改minion配置文件,增加master的配置

vim /etc/salt/minion,修改如下两行 
master: node131 #master的IP或者主机名都可
id: node134 #客户端的标识,用服务端连接时,就是用此标识来连接客户端
/etc/init.d/salt-minion start

step3:升级salt

根据官方文档区的介绍,当升级Salt的时候,master(s)应该首先升级。masters向后兼容,minions运行版本比masters版本新是不能保证运行正常的。

step4:认证

服务器启动之后进行最简单的认证。master启动后默认监听4505和4506两个端口。4505(publish_port)为salt的消息发布系统,4506(ret_port)为salt客户端与服务端通信的端口。

  1. minion在第一次启动时,会在/etc/salt/pki/minion/(该路径在/etc/salt/minion里面设置)下自动生成minion.pem(private key)和minion.pub(public key),然后将minion.pub发送给master。

  2. master 在接收到minion的public key后,通过salt-key命令accept minion public key,这样在master的/etc/salt/pki/master/minions下的将会存放以minion id命名的public key, 然后master就能对minion发送指令了。

# salt-key -L 
Accepted Keys:
Unaccepted Keys:
Rejected Keys:
在我这个测试版本2014.1.4中,默认已经看不到未接受的minion证书,和之前的0.7的版本不太一样

step5:KEY管理

master和minion数据交换过程中使用AES加密, 为了保证发送给minion的指令不会被篡改,master和minion之间认证采用信任的接受(trusted, accepted )的key. 在发送命令到minion之前,minion的key需要先被master所接受(accepted)

Unaccepted Keys:未被服务端接受的KEY 
Rejected Keys:被服务端拒绝的KEY
salt-key命令可以接受特定的单个key或批量接受key, 使用-A选项接受当前所有的key, 接受单个key可以使用-a keyname.

认证命令为salt-key,常用的有如下命令:

-a ACCEPT, --accept=ACCEPTAccept the following key 
-A, --accept-all Accept all pending keys
-r REJECT, --reject=REJECTReject the specified public key
-R, --reject-all Reject all pending keys
-d DELETE, --delete=DELETEDelete the named key
-D, --delete-all Delete all keys
手动单台接受证书
[root@node131 ~]# salt-key -a node134 
The following keys are going to be accepted:
Unaccepted Keys: node134
Proceed? [n/Y] y
Key for minion node134 accepted.

[root@node131 ~]# salt-key -L \\此时就能看到接受到的证书了
Accepted Keys:
node134
Unaccepted Keys:
Rejected Keys:

#下面的命令上面介绍到了常见的命令,不在演示
测试指令
[root@node131 ~]# salt 'node134' test.ping 
node134:
True
\\到这里只是表示已经成功的master和minion建立了信任关系,可以正常通信了,下面执行一条命令测试

[root@node131 ~]# salt -E 'node134|node135' cmd.run 'df -h'
node134:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 14G 1.9G 11G 15% /
tmpfs 242M 0 242M 0% /dev/shm
/dev/sda1 485M 33M 427M 8% /boot
node135:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 14G 1.6G 12G 12% /
tmpfs 242M 0 242M 0% /dev/shm
/dev/sda1

\\这里命令支持正则,通配符等相关方式管理minion

接下来的内容中介绍salt更加详细的用法和深入的内容,也是学习的一个持续进展的过程

你可能感兴趣的:(安装,简介,SALT)