SALT 十分钟入门
2016年8月29日13:59:12
最近快要成为为运维了,各种在服务器集群上部署应用,最早以为写一个shell脚本,在每台服务器上运行一下就够了。但是服务器涨到30台、50台时,每次部署,每次做一些修改,就显得非常头疼了。如果有一个工具可以让你们在一台主机机子上完成对所有其他服务器的配置,那真是一件非常爽的事情。 Salt就是这么一个工具!
Salt
Salt 是一种新的基础设备管理方法.用几秒中就能过把环境打起来,可以拓展管理成百上前台服务器,并且与这些服务器保持毫秒级通信.
Saltstack使用Python开发的,非常简单易用和轻量级的管理工具。由Master和Minion构成,通过ZeroMQ进行通信。可能是由于Python开发的原因,Salt的配置也是超级简单方便.基本能够在几分钟内就可以配置完成.
安装
Salt 以来与epel,如果你的集群上没有安装则需要:
或者
之后只需要在服务器和客户机进行不同安装
服务端安装salt-master
客户端安装salt-minion
这里的minion
是被salt中的被控制的从机的意思.
启动服务
service salt-master start
同时salt-master也支持命令行启动
调试启动
Salt Master 需要绑定的两个端口4505
和4506
.
如果你将Master主机设置的名字设置为
salt
,那么网络内的所有minion(从机)都会在启动的时候搜索到这台机子.否则的话则需要在minion上做如下配置,声明下master机子是哪一台: 修改/etc/salt/minion:
文件,将master那栏解注,然后填入master的IP(10.101.10.10)
同理,启动minion:
使用SALT-KEY
SALY使用SALT-KEY来进行认证交互,所以对于minion要想收到master的命名,必须让master接受自己的key.
slat-key
命令就是用来管理master机子上的keys的.
列出master机子上的所有keys:
这个命令会列出被master接受的(accepted),拒绝的(rejected
)以及还处于待处理状态(pending)的key.我们可以使用下面的命令接受所有pending状态的keys:
注:建议master在接受minion的key时,使用
salt-key -f minion-id
命令查看minion的可以,并且在minion上运行salt-call key.finger --loacl
查看minion本机的key.如果两者匹配,主机再选择接受这个minon. 主机运行:
123 salt-key -f foo.domain.comUnaccepted Keys:foo.domain.com: 39:f9:e4:8a:aa:74:8d:52:1a:ec:92:03:82:09:c8:f9
minion上运行:
如果两者匹配则在master上运行salt-key -a foo.domain.com
来接受这台minion.
发送第一个命令
连接成功后,就可以从master对minion发送命令了,一个简单的向所有minon发送ping的命令:
其中*
表示命令执行的对象.
test.ping
告诉minion来运行test.ping
的函数.
对于test.ping
这部分,test
是一个salt的执行模块,ping
指代这个模块中的ping函数.
更多的执行模块可以参见:(执行模块)[https://docs.saltstack.com/en/latest/ref/modules/index.html]
查看磁盘信息
了解salt函数
salt自带了一系列的库函数,可以通过下列命令查看minions上可以执行的函数:
当然你也可以在web上找到这些文档
一些常用的函数
执行shell脚本
cmd
的模块可以帮助你在master上对minion执行shell操作
比如说,cmd.run
和cmd.run_all
安装软件包
列出所有网络接口
拷贝文件
方便的向minion发送配置文件
自定义函数
如果自带的函数模块和插件还不能满足你的需求的话,那你还以自己写sls文件,这里就不在叙述